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:
parent
cd5fcf10c6
commit
dd05eb4048
1 changed files with 12 additions and 1 deletions
13
src/xterm.c
13
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
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue