diff --git a/src/x11/events.c b/src/x11/events.c index 7383451b3..9af71925c 100644 --- a/src/x11/events.c +++ b/src/x11/events.c @@ -1007,6 +1007,9 @@ handle_input_xevent (MetaX11Display *x11_display, break; case XI_FocusIn: case XI_FocusOut: + if (clutter_stage_get_grab_actor (stage) != NULL) + break; + if (handle_window_focus_event (x11_display, window, enter_event, serial) && enter_event->event == enter_event->root) { @@ -1942,7 +1945,8 @@ meta_x11_display_handle_xevent (MetaX11Display *x11_display, if (x11_display->focused_by_us && event->xany.serial > x11_display->focus_serial && display->focus_window && - !window_has_xwindow (display->focus_window, x11_display->server_focus_window)) + !window_has_xwindow (display->focus_window, x11_display->server_focus_window) && + meta_display_windows_are_interactable (display)) { meta_topic (META_DEBUG_FOCUS, "Earlier attempt to focus %s failed", display->focus_window->desc);