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>
|
2004-10-04 Elijah Newren <newren@math.utah.edu>
|
||||||
|
|
||||||
Fix a variety of focus race conditions in all focus modes, or at
|
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 &&
|
if (event->type == FocusIn &&
|
||||||
event->xfocus.detail == NotifyDetailNone)
|
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_workspace_focus_default_window (screen->active_workspace, NULL, meta_display_thou_shalt_return_a_timestamp (display));
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user