X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=bb2490868249473813470d1a81ee24de0c40cfae;hb=0c8c23e8fdef2936d2ca425dcbf35e4eb7dd7edf;hp=3bfca98e6e28ca344ab1c5296de6b58d18ad1497;hpb=47744e03c3016e98940a4ce6393d9f6403ca794c;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 3bfca98e..bb249086 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -343,6 +343,9 @@ static gboolean wanted_focusevent(XEvent *e, gboolean in_client_only) /* This means focus was taken by a keyboard/mouse grab. */ if (mode == NotifyGrab) return FALSE; + /* This means focus was grabbed on a window and it was released. */ + if (mode == NotifyUngrab) + return FALSE; /* Focus left the root window revertedto state */ if (win == RootWindow(ob_display, ob_screen)) @@ -516,7 +519,7 @@ static void event_process(const XEvent *ec, gpointer data) */ if (!focus_left_screen) - focus_fallback(TRUE); + focus_fallback(TRUE, FALSE); } } else if (!client) @@ -570,7 +573,7 @@ static void event_process(const XEvent *ec, gpointer data) ob_debug_type(OB_DEBUG_FOCUS, "Focus went to an unmanaged window 0x%x !\n", ce.xfocus.window); - focus_fallback(TRUE); + focus_fallback(TRUE, FALSE); } } @@ -1455,6 +1458,7 @@ static void event_handle_client(ObClient *client, XEvent *e) client_update_sync_request_counter(client); } #endif + break; case ColormapNotify: client_update_colormap(client, e->xcolormap.colormap); break;