This is an automated email from the git hooks/post-receive script. o l i v i e r p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/xfwm4.
commit a1c712fe162890f30a04459468e80d206bfc9179 Author: Olivier Fourdan <four...@xfce.org> Date: Mon Apr 13 14:24:27 2020 +0200 device: Move error trap/push closer to X11 grabs As we already do an error trap/push with X11 core devices, do the same with Xi2 grabs and remove the check from the callers as it is not needed anymore. Signed-off-by: Olivier Fourdan <four...@xfce.org> --- src/client.c | 2 -- src/device.c | 29 +++++++++++++++++++++++++---- src/focus.c | 4 ---- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/client.c b/src/client.c index 4286d77..0808e5a 100644 --- a/src/client.c +++ b/src/client.c @@ -341,10 +341,8 @@ clientUngrabButtons (Client *c) { g_return_if_fail (c != NULL); TRACE ("client \"%s\" (0x%lx)", c->name, c->window); - myDisplayErrorTrapPush (c->screen_info->display_info); xfwm_device_ungrab_button (c->screen_info->display_info->devices, clientGetXDisplay (c), AnyButton, AnyModifier, c->window); - myDisplayErrorTrapPopIgnored (c->screen_info->display_info); } static gboolean diff --git a/src/device.c b/src/device.c index dc89b3f..d912d72 100644 --- a/src/device.c +++ b/src/device.c @@ -429,26 +429,35 @@ xfwm_device_grab_button (XfwmDevices *devices, Display *display, xi2_modifiers.status = 0; xfwm_device_fill_xi2_event_mask (&xievent_mask, event_mask); + myDisplayErrorTrapPush (display_info); status = XIGrabButton (display, devices->pointer.xi2_device, button, grab_window, cursor, grab_mode, paired_device_mode, owner_events, &xievent_mask, 1, &xi2_modifiers); g_free (xievent_mask.mask); - result = (status == XIGrabSuccess); + if (myDisplayErrorTrapPop (display_info) || status != XIGrabSuccess) + { + return FALSE; + } } #endif - return result; + return TRUE; } void xfwm_device_ungrab_button (XfwmDevices *devices, Display *display, guint button, guint modifiers, Window grab_window) { + DisplayInfo *display_info; #ifdef HAVE_XI2 XIGrabModifiers xi2_modifiers; #endif + display_info = myDisplayGetDefault (); + myDisplayErrorTrapPush (display_info); + XUngrabButton (display, button, modifiers, grab_window); + #ifdef HAVE_XI2 if (devices->xi2_available) { @@ -459,6 +468,8 @@ xfwm_device_ungrab_button (XfwmDevices *devices, Display *display, grab_window, 1, &xi2_modifiers); } #endif + + myDisplayErrorTrapPopIgnored (display_info); } gboolean @@ -491,25 +502,33 @@ xfwm_device_grab_keycode (XfwmDevices *devices, Display *display, xi2_modifiers.status = 0; xfwm_device_fill_xi2_event_mask (&xievent_mask, event_mask); + myDisplayErrorTrapPush (display_info); status = XIGrabKeycode (display, devices->keyboard.xi2_device, keycode, grab_window, grab_mode, paired_device_mode, owner_events, &xievent_mask, 1, &xi2_modifiers); g_free (xievent_mask.mask); - result = (status == XIGrabSuccess); + if (myDisplayErrorTrapPop (display_info) || status != XIGrabSuccess) + { + return FALSE; + } } #endif - return result; + return TRUE; } void xfwm_device_ungrab_keycode (XfwmDevices *devices, Display *display, gint keycode, guint modifiers, Window grab_window) { + DisplayInfo *display_info; #ifdef HAVE_XI2 XIGrabModifiers xi2_modifiers; #endif + display_info = myDisplayGetDefault (); + myDisplayErrorTrapPush (display_info); + XUngrabKey (display, keycode, modifiers, grab_window); #ifdef HAVE_XI2 @@ -522,6 +541,8 @@ xfwm_device_ungrab_keycode (XfwmDevices *devices, Display *display, grab_window, 1, &xi2_modifiers); } #endif + + myDisplayErrorTrapPopIgnored (display_info); } #ifdef HAVE_XI2 diff --git a/src/focus.c b/src/focus.c index af05023..eb5b1b9 100644 --- a/src/focus.c +++ b/src/focus.c @@ -716,7 +716,6 @@ clientGrabMouseButton (Client * c) TRACE ("client \"%s\" (0x%lx)", c->name, c->window); screen_info = c->screen_info; - myDisplayErrorTrapPush (screen_info->display_info); if (screen_info->params->raise_with_any_button) { grabButton (screen_info->display_info->devices, clientGetXDisplay (c), @@ -727,7 +726,6 @@ clientGrabMouseButton (Client * c) grabButton (screen_info->display_info->devices, clientGetXDisplay (c), Button1, AnyModifier, c->window); } - myDisplayErrorTrapPopIgnored (screen_info->display_info); } void @@ -736,12 +734,10 @@ clientUngrabMouseButton (Client * c) g_return_if_fail (c != NULL); TRACE ("client \"%s\" (0x%lx)", c->name, c->window); - myDisplayErrorTrapPush (c->screen_info->display_info); ungrabButton (c->screen_info->display_info->devices, clientGetXDisplay (c), AnyButton, AnyModifier, c->window); /* We've ungrabbed way too much, so regrab the regular buttons/modifiers */ clientGrabButtons (c); - myDisplayErrorTrapPopIgnored (c->screen_info->display_info); } void -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits