emacs-diffs
[Top][All Lists]
Advanced

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

master cdb0b28474c 1/3: Fix pinch gestures after toolkit menu


From: Po Lu
Subject: master cdb0b28474c 1/3: Fix pinch gestures after toolkit menu
Date: Wed, 9 Aug 2023 21:00:48 -0400 (EDT)

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

    Fix pinch gestures after toolkit menu
    
    * src/xmenu.c (leave_toolkit_menu): Restore gesture event
    mask.  (bug#65129)
---
 src/xmenu.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/xmenu.c b/src/xmenu.c
index 6d32aa3e078..2d405d54deb 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1617,6 +1617,7 @@ popup_selection_callback (Widget widget, LWLIB_ID id, 
XtPointer client_data)
 
 
 #ifdef HAVE_XINPUT2
+
 static void
 prepare_for_entry_into_toolkit_menu (struct frame *f)
 {
@@ -1680,6 +1681,19 @@ leave_toolkit_menu (void *data)
   XISetMask (m, XI_Enter);
   XISetMask (m, XI_Leave);
 
+#ifdef HAVE_XINPUT2_4
+  /* Select for gesture events.  Emacs selects for gesture events from
+     all master devices on non-GTK3 builds, so that event mask is also
+     clobbered by prepare_for_entry_into_toolkit_menu.  (bug#65129) */
+
+  if (dpyinfo->xi2_version >= 4)
+    {
+      XISetMask (m, XI_GesturePinchBegin);
+      XISetMask (m, XI_GesturePinchUpdate);
+      XISetMask (m, XI_GesturePinchEnd);
+    }
+#endif /* HAVE_XINPUT2_4 */
+
   FOR_EACH_FRAME (tail, frame)
     {
       f = XFRAME (frame);
@@ -1691,7 +1705,8 @@ leave_toolkit_menu (void *data)
                        &mask, 1);
     }
 }
-#endif
+
+#endif /* HAVE_XINPUT2 */
 
 /* ID is the LWLIB ID of the dialog box.  */
 



reply via email to

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