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)
This commit is contained in:
Elijah Newren 2004-10-04 21:21:38 +00:00 committed by Elijah Newren
parent 70e40c235c
commit 714fb3d539
2 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,10 @@
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> 2004-10-04 Elijah Newren <newren@math.utah.edu>
Fix a variety of issues with autoraise (#134206) Fix a variety of issues with autoraise (#134206)

View File

@ -1829,6 +1829,9 @@ event_callback (XEvent *event,
else if (meta_display_screen_for_root (display, else if (meta_display_screen_for_root (display,
event->xany.window) != NULL) event->xany.window) != NULL)
{ {
MetaScreen * screen;
screen = meta_display_screen_for_root (display, event->xany.window);
meta_topic (META_DEBUG_FOCUS, meta_topic (META_DEBUG_FOCUS,
"Focus %s event received on root window 0x%lx " "Focus %s event received on root window 0x%lx "
"mode %s detail %s\n", "mode %s detail %s\n",
@ -1842,15 +1845,20 @@ event_callback (XEvent *event,
if (event->type == FocusIn && if (event->type == FocusIn &&
event->xfocus.detail == NotifyDetailNone) event->xfocus.detail == NotifyDetailNone)
{ {
MetaScreen * screen;
screen =
meta_display_screen_for_root (display, event->xany.window);
meta_topic (META_DEBUG_FOCUS, 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"); "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)); 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; break;
case KeymapNotify: case KeymapNotify: