mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 23:50:41 -05:00
When no window becomes focused, focus the default window instead of
2004-10-04 Elijah Newren <newren@math.utah.edu> * src/display.c (event_callback): When no window becomes focused, focus the default window instead of punting to the no_focus_window. Also, change the warning to a verbose message--this will happen frequently due to brain-damage in the X protocol. (see #125492)
This commit is contained in:
parent
16b9aff47c
commit
546fe7b5b3
@ -1,3 +1,11 @@
|
||||
2004-10-04 Elijah Newren <newren@math.utah.edu>
|
||||
|
||||
* src/display.c (event_callback): When no window becomes focused,
|
||||
focus the default window instead of punting to the
|
||||
no_focus_window. Also, change the warning to a verbose
|
||||
message--this will happen frequently due to brain-damage in the X
|
||||
protocol. (see #125492)
|
||||
|
||||
2004-10-04 Elijah Newren <newren@math.utah.edu>
|
||||
|
||||
Fix a variety of focus race conditions in all focus modes, or at
|
||||
|
@ -1838,28 +1838,10 @@ event_callback (XEvent *event,
|
||||
if (event->type == FocusIn &&
|
||||
event->xfocus.detail == NotifyDetailNone)
|
||||
{
|
||||
XEvent property_event;
|
||||
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");
|
||||
|
||||
/* FIXME _() gettextify on HEAD */
|
||||
meta_warning ("Working around an application which called XSetInputFocus (None) or with RevertToNone instead of RevertToPointerRoot, this is a minor bug in some application. If you can figure out which application causes this please report it as a bug against that application.\n");
|
||||
|
||||
/* Fix the problem */
|
||||
/* Using the property XA_PRIMARY because it's safe;
|
||||
* nothing would use it as a property. The type
|
||||
* doesn't matter.
|
||||
*/
|
||||
XChangeProperty (display->xdisplay,
|
||||
display->leader_window,
|
||||
XA_PRIMARY, XA_STRING, 8,
|
||||
PropModeAppend, NULL, 0);
|
||||
XWindowEvent (display->xdisplay,
|
||||
display->leader_window,
|
||||
PropertyChangeMask,
|
||||
&property_event);
|
||||
XSetInputFocus (display->xdisplay,
|
||||
display->no_focus_window,
|
||||
RevertToPointerRoot,
|
||||
property_event.xproperty.time);
|
||||
meta_workspace_focus_default_window (screen->active_workspace, NULL, meta_display_thou_shalt_return_a_timestamp (display));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user