From: Po Lu Date: Thu, 6 Jan 2022 11:11:56 +0000 (+0800) Subject: Make sure touch end events aren't sent too many times X-Git-Tag: emacs-29.0.90~3233 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9fc20ad35c8dd1814ba097a0ec20c0230c467729;p=emacs.git Make sure touch end events aren't sent too many times * 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. --- diff --git a/src/xterm.c b/src/xterm.c index ff6c71283ec..1d4c775753c 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10156,6 +10156,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, case XI_Motion: { struct xi_device_t *device; + bool touch_end_event_seen = false; states = &xev->valuators; values = states->values; @@ -10294,7 +10295,12 @@ handle_one_xevent (struct x_display_info *dpyinfo, 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; }