focus_client is already nulled from the fallback, and use client_focused for niceness...
authorDana Jansens <danakj@orodu.net>
Thu, 26 Apr 2007 06:14:09 +0000 (06:14 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 26 Apr 2007 06:14:09 +0000 (06:14 +0000)
openbox/client.c

index 7fcc066..13e239d 100644 (file)
@@ -493,7 +493,7 @@ void client_unmanage(ObClient *self)
 
     /* update the focus lists */
     focus_order_remove(self);
-    if (self == focus_client) {
+    if (client_focused(self)) {
         /* we have to fall back here because we might not get a focus out.
            1. we need to xselectinput off the window before we unmap it because
            otherwise we end up getting unmapnotifies we don't want and they
@@ -503,11 +503,13 @@ void client_unmanage(ObClient *self)
               get the focusout event.
            3. we can't handle focusin events on the root window because they
               come from all screens, so the focus change gets lost
+
+           if this ever gets removed in the future MAKE SURE to replace it
+           with:
+           /- don't leave an invalid focus_client -/
+           focus_client = NULL;
         */
         focus_fallback(FALSE);
-
-        /* don't leave an invalid focus_client */
-        focus_client = NULL;
     }
 
     client_list = g_list_remove(client_list, self);