when focusing nothing, make sure focus_client knows that nothing is focused

This commit is contained in:
Dana Jansens 2007-04-22 20:33:12 +00:00
parent afd88015b5
commit 3265ea9ac1

View file

@ -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);