when focusing nothing, make sure focus_client knows that nothing is focused
This commit is contained in:
parent
afd88015b5
commit
3265ea9ac1
1 changed files with 4 additions and 1 deletions
|
@ -259,6 +259,7 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
|
||||||
void focus_fallback(gboolean allow_refocus)
|
void focus_fallback(gboolean allow_refocus)
|
||||||
{
|
{
|
||||||
ObClient *new;
|
ObClient *new;
|
||||||
|
ObClient *old = focus_client;
|
||||||
|
|
||||||
/* unfocus any focused clients.. they can be focused by Pointer events
|
/* unfocus any focused clients.. they can be focused by Pointer events
|
||||||
and such, and then when I try focus them, I won't get a FocusIn event
|
and such, and then when I try focus them, I won't get a FocusIn event
|
||||||
|
@ -266,7 +267,7 @@ void focus_fallback(gboolean allow_refocus)
|
||||||
*/
|
*/
|
||||||
focus_nothing();
|
focus_nothing();
|
||||||
|
|
||||||
if ((new = focus_fallback_target(allow_refocus, focus_client)))
|
if ((new = focus_fallback_target(allow_refocus, old)))
|
||||||
client_focus(new);
|
client_focus(new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,6 +279,8 @@ void focus_nothing()
|
||||||
screen_install_colormap(NULL, TRUE);
|
screen_install_colormap(NULL, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
focus_client = NULL;
|
||||||
|
|
||||||
/* when nothing will be focused, send focus to the backup target */
|
/* when nothing will be focused, send focus to the backup target */
|
||||||
XSetInputFocus(ob_display, screen_support_win, RevertToPointerRoot,
|
XSetInputFocus(ob_display, screen_support_win, RevertToPointerRoot,
|
||||||
event_curtime);
|
event_curtime);
|
||||||
|
|
Loading…
Reference in a new issue