[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 3ce5918: Fix xwidget popups on XI2 again
From: |
Po Lu |
Subject: |
master 3ce5918: Fix xwidget popups on XI2 again |
Date: |
Sun, 28 Nov 2021 00:44:18 -0500 (EST) |
branch: master
commit 3ce591804badfde86870aa02a1432e870028e531
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix xwidget popups on XI2 again
* src/xwidget.c (xwidget_button_1): Release seat grab.
---
src/xwidget.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/xwidget.c b/src/xwidget.c
index e07b290..a5b96d0 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -910,6 +910,8 @@ xwidget_button_1 (struct xwidget_view *view,
#ifdef HAVE_XINPUT2
struct x_display_info *dpyinfo;
struct xi_device_t *xi_device;
+ GdkSeat *seat;
+ GdkDevice *device;
#endif
/* X and Y should be relative to the origin of view->wdesc. */
@@ -936,12 +938,20 @@ xwidget_button_1 (struct xwidget_view *view,
#ifdef HAVE_XINPUT2
dpyinfo = FRAME_DISPLAY_INFO (view->frame);
+ device = xg_event->button.device;
+
for (int idx = 0; idx < dpyinfo->num_devices; ++idx)
{
xi_device = &dpyinfo->devices[idx];
XIUngrabDevice (view->dpy, xi_device->device_id, CurrentTime);
}
+
+ if (device)
+ {
+ seat = gdk_device_get_seat (device);
+ gdk_seat_ungrab (seat);
+ }
#endif
gtk_main_do_event (xg_event);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 3ce5918: Fix xwidget popups on XI2 again,
Po Lu <=