summaryrefslogtreecommitdiff
path: root/src/core/window.c
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2018-05-25 20:18:23 +0200
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2020-03-22 03:37:26 +0200
commit23f3656613bc2ffa2e39d1798fe7efdaf68b8e2e (patch)
treea325fbf4e9b1b93b5e722d65ad441f81442f5c2f /src/core/window.c
parentbf17c79171512d6a27c31e003e60a25e7a093226 (diff)
downloadmetacity-23f3656613bc2ffa2e39d1798fe7efdaf68b8e2e.tar.gz
window: Don't refuse to move focus to the grab window
We refuse to move focus while a grab operation is in place. While this generally makes sense, there's no reason why the window that owns the grab shouldn't be given the regular input focus as well - we pretty much assume that the grab window is also the focus window anyway. In fact there's a strong reason for allowing the focus change here: If the grab window isn't the focus window, it probably has a modal transient that is focused instead, and a likely reason for the focus request is that the transient is being unmanaged and we must move the focus elsewhere. https://gitlab.gnome.org/GNOME/mutter/issues/15
Diffstat (limited to 'src/core/window.c')
-rw-r--r--src/core/window.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/core/window.c b/src/core/window.c
index ff2c34a1..3aa5c96f 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -4478,6 +4478,7 @@ meta_window_focus (MetaWindow *window,
window->desc, window->input, window->take_focus);
if (window->display->grab_window &&
+ window->display->grab_window != window &&
window->display->grab_window->all_keys_grabbed &&
!window->display->grab_window->unmanaging)
{