From f735f345ad8390a7fb09ef54ca3e0e419d395d1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 21 Jul 2016 15:43:12 +0200 Subject: [PATCH] events: Don't move (sloppy) focus while buttons are pressed (https://bugzilla.redhat.com/show_bug.cgi?id=1358535) --- src/x11/events.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/x11/events.c b/src/x11/events.c index e363fdbb6..905b5bf9d 100644 --- a/src/x11/events.c +++ b/src/x11/events.c @@ -832,6 +832,16 @@ crossing_serial_is_ignored (MetaX11Display *x11_display, return FALSE; } +static gboolean +event_has_button_mask (XIEnterEvent *enter_event) +{ + int i; + for (i = 0; i < enter_event->buttons.mask_len; i++) + if (enter_event->buttons.mask[i] != '\0') + return TRUE; + return FALSE; +} + static gboolean handle_input_xevent (MetaX11Display *x11_display, XIEvent *input_event, @@ -876,6 +886,7 @@ handle_input_xevent (MetaX11Display *x11_display, * avoid races. */ if (window && !crossing_serial_is_ignored (x11_display, serial) && + !event_has_button_mask (enter_event) && enter_event->mode != XINotifyGrab && enter_event->mode != XINotifyUngrab && enter_event->detail != XINotifyInferior && -- 2.21.0