X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fevent.c;h=409641df650b82107182476eef55e0064aaf3f2b;hb=5e27544d073856731363c1be9b132074e13259f6;hp=e2851809ab7f3016fd650e560bd6eedc35044ed2;hpb=25e1e32f5440f16caae4609185ddcd5d81d8f6eb;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index e2851809..409641df 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -394,11 +394,14 @@ static gboolean event_ignore(XEvent *e, ObClient *client) case LeaveNotify: /* NotifyUngrab occurs when a mouse button is released and the event is caused, like when lowering a window */ - /* NotifyVirtual occurs when ungrabbing the pointer */ + /* NotifyVirtual and NotifyAncestor occurs when ungrabbing the + pointer (Ancestor happens when the pointer is on a window border) */ if (e->xcrossing.mode == NotifyGrab || e->xcrossing.detail == NotifyInferior || (e->xcrossing.mode == NotifyUngrab && - e->xcrossing.detail == NotifyVirtual)) { + (e->xcrossing.detail == NotifyAncestor || + e->xcrossing.detail == NotifyNonlinearVirtual || + e->xcrossing.detail == NotifyVirtual))) { #ifdef DEBUG_FOCUS ob_debug("%sNotify mode %d detail %d on %lx IGNORED\n", (e->type == EnterNotify ? "Enter" : "Leave"), @@ -698,15 +701,7 @@ static void event_handle_client(ObClient *client, XEvent *e) break; case OB_FRAME_CONTEXT_FRAME: if (client_normal(client)) { - if (ob_state() == OB_STATE_STARTING) { - /* move it to the top of the focus order */ - guint desktop = client->desktop; - if (desktop == DESKTOP_ALL) desktop = screen_desktop; - focus_order[desktop] = g_list_remove(focus_order[desktop], - client); - focus_order[desktop] = g_list_prepend(focus_order[desktop], - client); - } else if (config_focus_follow) { + if (config_focus_follow) { #ifdef DEBUG_FOCUS ob_debug("EnterNotify on %lx, focusing window\n", client->window);