* src/xterm.c (handle_one_xevent): Don't send touch end events
twice if two valuators have their masks set without a change in
value.
case XI_Motion:
{
struct xi_device_t *device;
+ bool touch_end_event_seen = false;
states = &xev->valuators;
values = states->values;
inev.ie.arg = Qnil;
}
- kbd_buffer_store_event_hold (&inev.ie, hold_quit);
+ if (inev.ie.kind != TOUCH_END_EVENT
+ || !touch_end_event_seen)
+ {
+ kbd_buffer_store_event_hold (&inev.ie, hold_quit);
+ touch_end_event_seen = inev.ie.kind == TOUCH_END_EVENT;
+ }
val->emacs_value = 0;
}