diff options
author | Benjamin Otte <otte@redhat.com> | 2018-02-12 21:09:50 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2018-02-12 21:11:58 +0100 |
commit | 4b1c02560f0d8097bf5a11932e52fb72f3e9e94b (patch) | |
tree | 2c90355294fd72e0f02f2e74e53003ec816945da | |
parent | 8dc234717efc1f52f6d78ce3c5f9391f45047955 (diff) | |
download | gtk+-4b1c02560f0d8097bf5a11932e52fb72f3e9e94b.tar.gz |
x11: Don't call XInput API for core events
Fixes emacs crashing with XMing.
https://bugzilla.redhat.com/show_bug.cgi?id=1483942
-rw-r--r-- | gdk/x11/gdkdisplay-x11.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 3e843d65cb..75bd34c2cd 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -3072,6 +3072,16 @@ gdk_x11_display_get_default_seat (GdkDisplay *display) seats = gdk_display_list_seats (display); + /* Shortcut only one seat being available. + * This path always triggers for core events, so we can freely use XInput below. */ + if (g_list_length (seats) == 1) + { + GdkSeat *seat = seats->data; + + g_list_free (seats); + return seat; + } + gdk_x11_display_error_trap_push (display); result = XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display), None, &device_id); |