From: Po Lu Date: Mon, 16 May 2022 01:18:33 +0000 (+0800) Subject: Handle pointer axes changing along with scroll valuators X-Git-Tag: emacs-29.0.90~1910^2~660 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=dd05eb40485b49e8b06154b21dbd8097178c5aed;p=emacs.git Handle pointer axes changing along with scroll valuators * xterm.c (x_get_scroll_valuator_delta): Set valuator_return to NULL if no valuator was found. (handle_one_xevent): Assume pointer axes might've changed if no scroll valuator was found but valuators were set when handling motion events. --- diff --git a/src/xterm.c b/src/xterm.c index 21c31271ca5..45b756b0afd 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4307,6 +4307,7 @@ x_get_scroll_valuator_delta (struct x_display_info *dpyinfo, } } + *valuator_return = NULL; return DBL_MAX; } @@ -17507,6 +17508,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XIValuatorState *states; double *values; bool found_valuator = false; + bool other_valuators_found = false; #endif /* A fake XMotionEvent for x_note_mouse_movement. */ XMotionEvent ev; @@ -17564,6 +17566,12 @@ handle_one_xevent (struct x_display_info *dpyinfo, i, *values, &val); values++; + if (!val) + { + other_valuators_found = true; + continue; + } + if (delta != DBL_MAX) { if (!f) @@ -17752,7 +17760,10 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (source && !NILP (source->name)) inev.ie.device = source->name; - goto XI_OTHER; + if (!other_valuators_found) + goto XI_OTHER; + else + puts ("ovf"); } #ifdef HAVE_XWIDGETS }