diff options
author | Jason Gerecke <killertofu@gmail.com> | 2016-01-07 09:52:41 -0800 |
---|---|---|
committer | Rui Matos <tiagomatos@gmail.com> | 2016-01-07 20:28:41 +0100 |
commit | 56a43b0ace4dc085c1f14777315c03788d267460 (patch) | |
tree | d939fe44f11b378e562bf1190ad52b14cb5d2bef | |
parent | 7af4fae1808cde85bbecef33fdd08a3329740d08 (diff) | |
download | gnome-settings-daemon-56a43b0ace4dc085c1f14777315c03788d267460.tar.gz |
common: wrap grab_button with gdk_error_trap_push/pop
The XIGrabButton and XIUngrabButton functions can fail with e.g. BadDevice,
so we should be careful to catch the error and not crash.
https://bugzilla.gnome.org/show_bug.cgi?id=760288
-rw-r--r-- | plugins/common/gsd-keygrab.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/plugins/common/gsd-keygrab.c b/plugins/common/gsd-keygrab.c index 7755a474..1413faaf 100644 --- a/plugins/common/gsd-keygrab.c +++ b/plugins/common/gsd-keygrab.c @@ -55,6 +55,7 @@ grab_button (int deviceid, evmask.mask_len = sizeof (mask); evmask.mask = mask; + gdk_error_trap_push(); XIGrabButton (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), deviceid, XIAnyButton, @@ -66,11 +67,14 @@ grab_button (int deviceid, &evmask, 1, &mods); + gdk_error_trap_pop_ignored (); } else { + gdk_error_trap_push(); XIUngrabButton (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), deviceid, XIAnyButton, GDK_WINDOW_XID (root), 1, &mods); + gdk_error_trap_pop_ignored (); } } |