summaryrefslogtreecommitdiff
path: root/src/core/display.c
diff options
context:
space:
mode:
authorBalazs Endresz <[email protected]>2022-11-01 18:15:22 +0100
committerraveit65 <[email protected]>2022-11-12 17:26:58 +0100
commit85ce3f72a00c620aa7631b33eba1e8f4fc8b131f (patch)
tree1a47d1ae6dd710e5f1d88835c5a3f5e0846da3b4 /src/core/display.c
parent63b00b9ee4d98cf9dc65b53ef1b27155da14d93e (diff)
downloadmarco-85ce3f72a00c620aa7631b33eba1e8f4fc8b131f.tar.bz2
marco-85ce3f72a00c620aa7631b33eba1e8f4fc8b131f.tar.xz
Always bring into foreground the previous window after closing one
When opening and then closing certain applications the focus was correctly regained by the previous window but it wasn't brought into the foreground. To fix this we call meta_workspace_focus_default_window() for both NotifyDetailNone and NotifyPointerRoot. These two are always mentioned together in the X docs: https://tronche.com/gui/x/xlib/events/input-focus/normal-and-grabbed.html Some programs will have NotifyDetailNone when closed, while others end up with NotifyPointerRoot.
Diffstat (limited to 'src/core/display.c')
-rw-r--r--src/core/display.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/display.c b/src/core/display.c
index b56b3732..7edf41b8 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -2223,7 +2223,7 @@ static gboolean event_callback(XEvent* event, gpointer data)
meta_event_detail_to_string (event->xfocus.detail));
if (event->type == FocusIn &&
- event->xfocus.detail == NotifyDetailNone)
+ (event->xfocus.detail == NotifyDetailNone || event->xfocus.detail == NotifyPointerRoot))
{
meta_topic (META_DEBUG_FOCUS,
"Focus got set to None, probably due to "