From 76d1a64204181f4da82d9614fe59daf350d5dfda Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Wed, 16 Dec 2020 17:59:02 +0100 Subject: [PATCH] core: Be more selective looking for a focusable ancestor find_focusable_ancestor() may pick an ancestor window which is not mapped or hidden, and setting focus on that window will fail. Be a tad more selective when looking for a focusable ancestor, to reduce the chance of meta_window_focus() not focusing the happy chosen one. Part-of: --- src/core/workspace.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/workspace.c b/src/core/workspace.c index 89f6d369f..62328ad31 100644 --- a/src/core/workspace.c +++ b/src/core/workspace.c @@ -1346,7 +1346,10 @@ find_focusable_ancestor (MetaWindow *window, { MetaWorkspaceFocusableAncestorData *data = user_data; - if (!window->unmanaging && meta_window_is_focusable (window) && + if (!window->unmanaging && + window->mapped && + !window->hidden && + meta_window_is_focusable (window) && meta_window_located_on_workspace (window, data->workspace) && meta_window_showing_on_its_workspace (window)) {