summaryrefslogtreecommitdiff
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
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)
-rw-r--r--ChangeLog7
-rw-r--r--src/display.c16
2 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 94eee121..cf83f50f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
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)
+
+2004-10-04 Elijah Newren <newren@math.utah.edu>
+
Fix a variety of issues with autoraise (#134206)
* src/display.h: (struct _MetaDisplay): add an autoraise_window
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: