emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9fc20ad35c: Make sure touch end events aren't sent too many times


From: Po Lu
Subject: master 9fc20ad35c: Make sure touch end events aren't sent too many times
Date: Thu, 6 Jan 2022 06:12:51 -0500 (EST)

branch: master
commit 9fc20ad35c8dd1814ba097a0ec20c0230c467729
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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.
---
 src/xterm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/xterm.c b/src/xterm.c
index ff6c71283e..1d4c775753 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;
                        }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]