diff options
author | Hans de Goede <hdegoede@redhat.com> | 2019-11-10 17:41:37 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2019-11-10 19:45:08 +0100 |
commit | 5afec87b96828424a4a35ef9ccf9ddcc3e2edda6 (patch) | |
tree | 9d4ecb7b99b621a581124e92bd6d3ae00c25dcb9 /src/backends/x11/meta-input-settings-x11.c | |
parent | a4f51da184e8eab0a2d44d0fc535032515436e8d (diff) | |
download | mutter-5afec87b96828424a4a35ef9ccf9ddcc3e2edda6.tar.gz |
input-settings/x11: Add missing clutter_x11_trap_x_errors around XIGetProperty
Add missing clutter_x11_[un]trap_x_errors around the XIGetProperty call
in meta-input-settings-x11.c's get_property helper function.
This fixes mutter crashing with the following error if the XInput device
goes away at an unconvenient time:
X Error of failed request: XI_BadDevice (invalid Device parameter)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 59 ()
Device id in failed request: 0x200011
Serial number of failed request: 454
Current serial number in output stream: 454
https://gitlab.gnome.org/GNOME/mutter/merge_requests/928
Diffstat (limited to 'src/backends/x11/meta-input-settings-x11.c')
-rw-r--r-- | src/backends/x11/meta-input-settings-x11.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c index 89f07ee1f..05f932420 100644 --- a/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c @@ -118,9 +118,12 @@ get_property (ClutterInputDevice *device, device_id = clutter_input_device_get_device_id (device); + clutter_x11_trap_x_errors (); rc = XIGetProperty (xdisplay, device_id, property_atom, 0, 10, False, type, &type_ret, &format_ret, &nitems_ret, &bytes_after_ret, &data_ret); + clutter_x11_untrap_x_errors (); + if (rc == Success && type_ret == type && format_ret == format && nitems_ret >= nitems) { if (nitems_ret > nitems) |