handle multiple focusin/out in one batch
This commit is contained in:
parent
7582194997
commit
dc9c39d042
1 changed files with 8 additions and 3 deletions
|
@ -344,15 +344,18 @@ static void event_done(gpointer data)
|
|||
frame_adjust_focus(focus_in->frame, TRUE);
|
||||
client_calc_layer(focus_in);
|
||||
}
|
||||
|
||||
focus_hilite = focus_in;
|
||||
}
|
||||
if (focus_out) {
|
||||
if (focus_out == focus_client)
|
||||
focus_set_client(NULL);
|
||||
frame_adjust_focus(focus_out->frame, FALSE);
|
||||
client_calc_layer(focus_out);
|
||||
}
|
||||
|
||||
focus_hilite = focus_in;
|
||||
if (!focus_in)
|
||||
focus_hilite = NULL;
|
||||
}
|
||||
|
||||
if (focus_client != last) {
|
||||
if (!focus_client) {
|
||||
|
@ -615,6 +618,8 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
|||
e->xfocus.window, client->window,
|
||||
e->xfocus.mode, e->xfocus.detail);
|
||||
#endif
|
||||
g_message("hilite %x client %x", focus_hilite, client);
|
||||
if (focus_hilite == client)
|
||||
focus_out = client;
|
||||
if (focus_in == client)
|
||||
focus_in = NULL;
|
||||
|
|
Loading…
Reference in a new issue