summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 62a9c05a977..7370a795c08 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;