[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master a5509a2: Fix xg_event_is_for_menubar for XI2 events
From: |
Po Lu |
Subject: |
master a5509a2: Fix xg_event_is_for_menubar for XI2 events |
Date: |
Mon, 20 Dec 2021 20:53:22 -0500 (EST) |
branch: master
commit a5509a2a5e4bb356fc800c4d3a2c7e8c83710a70
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix xg_event_is_for_menubar for XI2 events
* src/gtkutil.c (xg_event_is_for_menubar): Use correct fields
for XI2 events.
* src/xterm.c (handle_one_event): Drop TouchBegin events we
know about.
---
src/gtkutil.c | 19 ++++++++++++++++---
src/xterm.c | 1 +
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 62a9c05..7370a79 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -4038,7 +4038,7 @@ xg_event_is_for_menubar (struct frame *f, const XEvent
*event)
#ifdef HAVE_XINPUT2
XIDeviceEvent *xev = (XIDeviceEvent *) event->xcookie.data;
- if (event->type == GenericEvent) /* XI_ButtonPress or XI_ButtonRelease */
+ if (event->type == GenericEvent) /* XI_ButtonPress or XI_ButtonRelease or a
touch event. */
{
if (! (xev->event_x >= 0
&& xev->event_x < FRAME_PIXEL_WIDTH (f)
@@ -4075,8 +4075,21 @@ xg_event_is_for_menubar (struct frame *f, const XEvent
*event)
list = gtk_container_get_children (GTK_CONTAINER (x->menubar_widget));
if (! list) return 0;
int scale = xg_get_scale (f);
- rec.x = event->xbutton.x / scale;
- rec.y = event->xbutton.y / scale;
+#ifdef HAVE_XINPUT2
+ if (event->type == GenericEvent)
+ {
+ rec.x = xev->event_x / scale;
+ rec.y = xev->event_y / scale;
+ }
+ else
+ {
+#else
+ rec.x = event->xbutton.x / scale;
+ rec.y = event->xbutton.y / scale;
+#endif
+#ifdef HAVE_XINPUT2
+ }
+#endif
rec.width = 1;
rec.height = 1;
diff --git a/src/xterm.c b/src/xterm.c
index 0cc093d..1691db1 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10891,6 +10891,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
if (f && device->direct_p)
{
+ *finish = X_EVENT_DROP;
x_catch_errors (dpyinfo->display);
XIAllowTouchEvents (dpyinfo->display, xev->deviceid,
xev->detail, xev->event, XIAcceptTouch);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master a5509a2: Fix xg_event_is_for_menubar for XI2 events,
Po Lu <=