diff options
author | Elijah Newren <newren@math.utah.edu> | 2004-10-04 21:21:38 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2004-10-04 21:21:38 +0000 |
commit | 714fb3d539cdaf7fafe6205d114e6a29276bd7b7 (patch) | |
tree | 0d7bfe048d129335ffe1e3743a1de9d4caf51ef4 /src/display.c | |
parent | 70e40c235c44a871c56d5c5e9ce14d98221a4434 (diff) | |
download | metacity-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.c | 16 |
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: |