workspace: Only consider windows that should be showing as focusable
When selecting the default focus window, is_focusable() was not considering the new conditions for whether a window should be shown or hidden that were added to meta_window_should_be_showing() in39942974
. As a result the default focus window could end up a window already hidden or hidden once meta_window_flush_calc_showing() is called by meta_window_focus() when focusing the default window. This would cause meta_window_focus() to fail, which is an issue if it prevents us from unfocusing a window when it is getting unmanaged. Fixes:399429742
("x11: Integrate frames client into Mutter") Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2644 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2962>
This commit is contained in:
@ -1436,8 +1436,7 @@ is_focusable (MetaWindow *window,
|
||||
window->unmaps_pending == 0 &&
|
||||
window->type != META_WINDOW_DOCK &&
|
||||
meta_window_is_focusable (window) &&
|
||||
meta_window_located_on_workspace (window, workspace) &&
|
||||
meta_window_showing_on_its_workspace (window);
|
||||
meta_window_should_be_showing_on_workspace (window, workspace);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
Reference in New Issue
Block a user