summaryrefslogtreecommitdiff
path: root/src/display.c
diff options
context:
space:
mode:
authorElijah Newren <newren@math.utah.edu>2004-10-04 21:21:38 +0000
committerElijah Newren <newren@src.gnome.org>2004-10-04 21:21:38 +0000
commit714fb3d539cdaf7fafe6205d114e6a29276bd7b7 (patch)
tree0d7bfe048d129335ffe1e3743a1de9d4caf51ef4 /src/display.c
parent70e40c235c44a871c56d5c5e9ce14d98221a4434 (diff)
downloadmetacity-714fb3d539cdaf7fafe6205d114e6a29276bd7b7.tar.gz
if the root window gets focused, set the focus to the default window; this
2004-10-04 Elijah Newren <newren@math.utah.edu> * src/display.c (event_callback): if the root window gets focused, set the focus to the default window; this fixes the "focus-follows-mouse" behavior seen for click-to-focus mode after cancelling log out (fixes #153220)
Diffstat (limited to 'src/display.c')
-rw-r--r--src/display.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/display.c b/src/display.c
index f4f82a0e..ca949331 100644
--- a/src/display.c
+++ b/src/display.c
@@ -1829,6 +1829,9 @@ event_callback (XEvent *event,
else if (meta_display_screen_for_root (display,
event->xany.window) != NULL)
{
+ MetaScreen * screen;
+ screen = meta_display_screen_for_root (display, event->xany.window);
+
meta_topic (META_DEBUG_FOCUS,
"Focus %s event received on root window 0x%lx "
"mode %s detail %s\n",
@@ -1842,15 +1845,20 @@ event_callback (XEvent *event,
if (event->type == FocusIn &&
event->xfocus.detail == NotifyDetailNone)
{
- MetaScreen * screen;
- screen =
- meta_display_screen_for_root (display, event->xany.window);
-
meta_topic (META_DEBUG_FOCUS,
"Focus got set to None, probably due to brain-damage in the X protocol (see bug 125492). Setting the default focus window.\n");
meta_workspace_focus_default_window (screen->active_workspace, NULL, meta_display_get_current_time_roundtrip (display));
}
+ else if (event->type == FocusIn &&
+ event->xfocus.mode == NotifyNormal &&
+ event->xfocus.detail == NotifyInferior)
+ {
+ meta_topic (META_DEBUG_FOCUS,
+ "Focus got set to root window, probably due to gnome-session logout dialog usage (see bug 153220). Setting the default focus window.\n");
+ meta_workspace_focus_default_window (screen->active_workspace, NULL, meta_display_get_current_time_roundtrip (display));
+ }
+
}
break;
case KeymapNotify: