aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-07-20 09:41:43 +0800
committerPo Lu2022-07-20 09:41:43 +0800
commitffd38a9911bf7515e5dc846e4d03c8153ffe1189 (patch)
treefc4b573494534cec1a545c110ef956df1c280a78 /src
parent3c539cb5b3a650276e946895b2bf0ceb372a8983 (diff)
downloademacs-ffd38a9911bf7515e5dc846e4d03c8153ffe1189.tar.gz
emacs-ffd38a9911bf7515e5dc846e4d03c8153ffe1189.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c23
1 files changed, 17 insertions, 6 deletions
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,
20418 dnd_state = xi_convert_event_state (xev); 20418 dnd_state = xi_convert_event_state (xev);
20419 20419
20420 if (x_dnd_last_window_is_frame) 20420 if (x_dnd_last_window_is_frame)
20421 x_dnd_note_self_wheel (dpyinfo, 20421 {
20422 x_dnd_last_seen_window, 20422#ifdef XI_PointerEmulated
20423 xev->root_x, xev->root_y, 20423 /* Set the last user time here even if this
20424 xev->detail, dnd_state, 20424 is an emulated button event, since
20425 xev->time); 20425 something happened in response. */
20426
20427 if (xev->flags & XIPointerEmulated)
20428 x_display_set_last_user_time (dpyinfo, xev->time,
20429 xev->send_event);
20430#endif
20431 x_dnd_note_self_wheel (dpyinfo,
20432 x_dnd_last_seen_window,
20433 xev->root_x, xev->root_y,
20434 xev->detail, dnd_state,
20435 xev->time);
20436 }
20426 else 20437 else
20427 x_dnd_send_position (x_dnd_frame, 20438 x_dnd_send_position (x_dnd_frame,
20428 x_dnd_last_seen_window, 20439 x_dnd_last_seen_window,
@@ -20431,7 +20442,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
20431 xev->time, x_dnd_wanted_action, 20442 xev->time, x_dnd_wanted_action,
20432 xev->detail, dnd_state); 20443 xev->detail, dnd_state);
20433 20444
20434 goto XI_OTHER; 20445 goto OTHER;
20435 } 20446 }
20436 20447
20437 if (xev->evtype == XI_ButtonRelease) 20448 if (xev->evtype == XI_ButtonRelease)