summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/x11/events.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/x11/events.c b/src/x11/events.c
index 639b3f580..8b9c10825 100644
--- a/src/x11/events.c
+++ b/src/x11/events.c
@@ -1009,6 +1009,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)
{
@@ -1929,7 +1932,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);