]> Dogcows Code - chaz/openbox/commitdiff
use client_can_focus from client_focus to always get the same result
authorDana Jansens <danakj@orodu.net>
Wed, 4 Jun 2003 19:24:37 +0000 (19:24 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 4 Jun 2003 19:24:37 +0000 (19:24 +0000)
openbox/client.c

index beb5c98656dfdbad3c39f768fdd662099b0028fc..a9a9eb5fa1c88e9370ecca098fce4f372b22f10a 100644 (file)
@@ -2240,38 +2240,14 @@ Client *client_focus_target(Client *self)
 }
 
 gboolean client_can_focus(Client *self)
-{
-    /* same code as in client_focus */
-
-    /* choose the correct target */
-    self = client_focus_target(self);
-
-    if (!self->frame->visible)
-        return FALSE;
-
-    if (!((self->can_focus || self->focus_notify) &&
-          (self->desktop == screen_desktop ||
-           self->desktop == DESKTOP_ALL) &&
-          !self->iconic))
-       return FALSE;
-
-    return TRUE;
-}
-
-gboolean client_focus(Client *self)
 {
     XEvent ev;
 
-    /* same code as in client_can_focus */
-
     /* choose the correct target */
     self = client_focus_target(self);
 
-    if (!self->frame->visible) {
-        /* update the focus lists */
-        focus_order_to_top(self);
+    if (!self->frame->visible)
         return FALSE;
-    }
 
     if (!((self->can_focus || self->focus_notify) &&
           (self->desktop == screen_desktop ||
@@ -2297,6 +2273,22 @@ gboolean client_focus(Client *self)
        }
     }
 
+    return TRUE;
+}
+
+gboolean client_focus(Client *self)
+{
+    /* choose the correct target */
+    self = client_focus_target(self);
+
+    if (!client_can_focus(self)) {
+        if (!self->frame->visible) {
+            /* update the focus lists */
+            focus_order_to_top(self);
+        }
+        return FALSE;
+    }
+
     if (self->can_focus)
         /* RevertToPointerRoot causes much more headache than RevertToNone, so
            I choose to use it always, hopefully to find errors quicker, if any
This page took 0.030208 seconds and 4 git commands to generate.