summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-10-13 04:01:11 +0000
committerDana Jansens <danakj@orodu.net>2003-10-13 04:01:11 +0000
commitdc9c39d042c186126d83124ef815451a492fedb2 (patch)
tree825d79d38e670c2e44f41654c75c0a478139aed3 /openbox
parent7582194997541c831f10a7097ca11be5fb56e453 (diff)
handle multiple focusin/out in one batch
Diffstat (limited to 'openbox')
-rw-r--r--openbox/event.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/openbox/event.c b/openbox/event.c
index bb138d3d..7c1231f2 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -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,7 +618,9 @@ static void event_handle_client(ObClient *client, XEvent *e)
e->xfocus.window, client->window,
e->xfocus.mode, e->xfocus.detail);
#endif
- focus_out = client;
+ g_message("hilite %x client %x", focus_hilite, client);
+ if (focus_hilite == client)
+ focus_out = client;
if (focus_in == client)
focus_in = NULL;
break;