send the right client for unfocus events
This commit is contained in:
parent
002bf5e7e6
commit
6e29605d41
1 changed files with 5 additions and 3 deletions
|
@ -32,6 +32,7 @@ void focus_startup()
|
||||||
void focus_set_client(Client *client)
|
void focus_set_client(Client *client)
|
||||||
{
|
{
|
||||||
Window active;
|
Window active;
|
||||||
|
Client *old;
|
||||||
|
|
||||||
/* sometimes this is called with the already-focused window, this is
|
/* sometimes this is called with the already-focused window, this is
|
||||||
important for the python scripts to work (eg, c = 0 twice). don't just
|
important for the python scripts to work (eg, c = 0 twice). don't just
|
||||||
|
@ -47,14 +48,15 @@ void focus_set_client(Client *client)
|
||||||
XSetInputFocus(ob_display, focus_backup, RevertToNone, CurrentTime);
|
XSetInputFocus(ob_display, focus_backup, RevertToNone, CurrentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
old = focus_client;
|
||||||
focus_client = client;
|
focus_client = client;
|
||||||
|
|
||||||
/* set the NET_ACTIVE_WINDOW hint */
|
/* set the NET_ACTIVE_WINDOW hint */
|
||||||
active = client ? client->window : None;
|
active = client ? client->window : None;
|
||||||
PROP_SET32(ob_root, net_active_window, window, active);
|
PROP_SET32(ob_root, net_active_window, window, active);
|
||||||
|
|
||||||
if (focus_client != NULL) {
|
if (focus_client != NULL)
|
||||||
dispatch_client(Event_Client_Focus, focus_client, 0, 0);
|
dispatch_client(Event_Client_Focus, focus_client, 0, 0);
|
||||||
dispatch_client(Event_Client_Unfocus, focus_client, 0, 0);
|
if (old != NULL)
|
||||||
}
|
dispatch_client(Event_Client_Unfocus, old, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue