From: Po Lu Date: Wed, 20 Jul 2022 01:41:43 +0000 (+0800) Subject: Fix setting user time upon scrolling self during DND X-Git-Tag: emacs-29.0.90~1447^2~847 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ffd38a9911bf7515e5dc846e4d03c8153ffe1189;p=emacs.git Fix setting user time upon scrolling self during DND * src/xterm.c (handle_one_xevent): Set user time for emulated scroll wheel events if Emacs ends up scrolled during DND. --- diff --git a/src/xterm.c b/src/xterm.c index c9acc9055d5..86dc122f933 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -20418,11 +20418,22 @@ handle_one_xevent (struct x_display_info *dpyinfo, dnd_state = xi_convert_event_state (xev); if (x_dnd_last_window_is_frame) - x_dnd_note_self_wheel (dpyinfo, - x_dnd_last_seen_window, - xev->root_x, xev->root_y, - xev->detail, dnd_state, - xev->time); + { +#ifdef XI_PointerEmulated + /* Set the last user time here even if this + is an emulated button event, since + something happened in response. */ + + if (xev->flags & XIPointerEmulated) + x_display_set_last_user_time (dpyinfo, xev->time, + xev->send_event); +#endif + x_dnd_note_self_wheel (dpyinfo, + x_dnd_last_seen_window, + xev->root_x, xev->root_y, + xev->detail, dnd_state, + xev->time); + } else x_dnd_send_position (x_dnd_frame, x_dnd_last_seen_window, @@ -20431,7 +20442,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, xev->time, x_dnd_wanted_action, xev->detail, dnd_state); - goto XI_OTHER; + goto OTHER; } if (xev->evtype == XI_ButtonRelease)