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.
This commit is contained in:
Po Lu 2022-05-16 09:18:33 +08:00
parent cd5fcf10c6
commit dd05eb4048

View file

@ -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
}