diff options
| author | Po Lu | 2022-07-20 09:41:43 +0800 |
|---|---|---|
| committer | Po Lu | 2022-07-20 09:41:43 +0800 |
| commit | ffd38a9911bf7515e5dc846e4d03c8153ffe1189 (patch) | |
| tree | fc4b573494534cec1a545c110ef956df1c280a78 /src | |
| parent | 3c539cb5b3a650276e946895b2bf0ceb372a8983 (diff) | |
| download | emacs-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.c | 23 |
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) |