X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=c22971f15bb4046584c9252cc686c6aa913f2a38;hb=224927a7ae0a72615a015731a06db2e3a14e18a3;hp=5388e227c4a3a7ce6d823496bf9d8645100cdf4a;hpb=d5f9df0845eb28dee542a789e43ca4cc1b6d0a4f;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 5388e227..c22971f1 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -303,6 +303,11 @@ static void event_hack_mods(XEvent *e) static gboolean event_ignore(XEvent *e, ObClient *client) { switch(e->type) { + case EnterNotify: + case LeaveNotify: + if (e->xcrossing.detail == NotifyInferior) + return TRUE; + break; case FocusIn: /* NotifyAncestor is not ignored in FocusIn like it is in FocusOut because of RevertToPointerRoot. If the focus ends up reverting to @@ -669,22 +674,16 @@ static void event_handle_client(ObClient *client, XEvent *e) if (client != focus_client) { focus_set_client(client); frame_adjust_focus(client->frame, TRUE); + client_calc_layer(client); } break; case FocusOut: #ifdef DEBUG_FOCUS ob_debug("FocusOut on client for %lx\n", client->window); #endif - /* are we a fullscreen window or a transient of one? (checks layer) - if we are then we need to be iconified since we are losing focus - */ - if (client->layer == OB_STACKING_LAYER_FULLSCREEN && !client->iconic && - !client_search_focus_tree_full(client)) - /* iconify fullscreen windows when they and their transients - aren't focused */ - client_iconify(client, TRUE, TRUE); frame_adjust_focus(client->frame, FALSE); - break; + client_calc_layer(client); + break; case LeaveNotify: con = frame_context(client, e->xcrossing.window); switch (con) { @@ -753,7 +752,6 @@ static void event_handle_client(ObClient *client, XEvent *e) break; case OB_FRAME_CONTEXT_FRAME: if (e->xcrossing.mode == NotifyGrab || - e->xcrossing.detail == NotifyInferior || e->xcrossing.mode == NotifyUngrab) { #ifdef DEBUG_FOCUS