summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-11-23 11:08:45 +0800
committerPo Lu <luangruo@yahoo.com>2021-11-23 11:08:45 +0800
commit2955d46c00430b38310d0fae968adea91e2bbc3d (patch)
treec512facc13a18a704cf58523e4c97dcd66a52915
parentda3db6a15d1fa20e862ee7b95aeed84ab86dbb05 (diff)
downloademacs-2955d46c00430b38310d0fae968adea91e2bbc3d.tar.gz
emacs-2955d46c00430b38310d0fae968adea91e2bbc3d.tar.bz2
emacs-2955d46c00430b38310d0fae968adea91e2bbc3d.zip
Only reset scroll valuators on real enter events
* src/xterm.c (handle_one_xevent): Test event detail and mode before resetting scroll valuators.
-rw-r--r--src/xterm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 11e7e602c09..bbfd3b0e82b 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9870,7 +9870,12 @@ handle_one_xevent (struct x_display_info *dpyinfo,
x_display_set_last_user_time (dpyinfo, xi_event->time);
x_detect_focus_change (dpyinfo, any, event, &inev.ie);
- xi_reset_scroll_valuators_for_device_id (dpyinfo, enter->deviceid);
+
+ if (enter->detail != XINotifyInferior
+ && enter->mode != XINotifyPassiveUngrab
+ && enter->mode != XINotifyUngrab && any)
+ xi_reset_scroll_valuators_for_device_id (dpyinfo, enter->deviceid);
+
f = any;
if (f && x_mouse_click_focus_ignore_position)
@@ -9895,7 +9900,6 @@ handle_one_xevent (struct x_display_info *dpyinfo,
x_display_set_last_user_time (dpyinfo, xi_event->time);
x_detect_focus_change (dpyinfo, any, event, &inev.ie);
- xi_reset_scroll_valuators_for_device_id (dpyinfo, leave->deviceid);
f = x_top_window_to_frame (dpyinfo, leave->event);
if (f)