]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
when looking for the focus target, search for modal children in the entire transient...
[chaz/openbox] / openbox / client.c
index 48fd214906ad4d9ca47142c2305bcb48f0d5d6ce..c7d03a826fa61c28e8bbd9452178586b4df69cf5 100644 (file)
@@ -2289,7 +2289,7 @@ void client_set_desktop_recursive(ObClient *self,
             client_showhide(self);
         /* raise if it was not already on the desktop */
         if (old != DESKTOP_ALL)
-            stacking_raise(CLIENT_AS_WINDOW(self));
+            client_raise(self);
         screen_update_areas();
 
         /* add to the new desktop(s) */
@@ -2492,7 +2492,7 @@ ObClient *client_focus_target(ObClient *self)
     ObClient *child;
      
     /* if we have a modal child, then focus it, not us */
-    child = client_search_modal_child(self);
+    child = client_search_modal_child(client_search_top_transient(self));
     if (child) return child;
     return self;
 }
@@ -2602,7 +2602,7 @@ void client_activate(ObClient *self, gboolean here)
     if (client_normal(self) && screen_showing_desktop)
         screen_show_desktop(FALSE);
     if (self->iconic)
-        client_iconify(self, FALSE, FALSE);
+        client_iconify(self, FALSE, here);
     if (self->desktop != DESKTOP_ALL &&
         self->desktop != screen_desktop) {
         if (here)
@@ -2623,16 +2623,17 @@ void client_activate(ObClient *self, gboolean here)
        about raising the window. when a fullscreen window loses focus, we need
        this or else the raise wont be able to raise above the to-lose-focus
        fullscreen window. */
-    {
-        ObAction *a;
-        GSList *l = NULL;
+    client_raise(self);
+}
 
-        a = action_from_string("Raise", OB_USER_ACTION_NONE);
-        g_assert(a);
-        l = g_slist_append(NULL, a);
+void client_raise(ObClient *self)
+{
+    action_run_string("Raise", self);
+}
 
-        action_run(l, self, 0);
-    }
+void client_lower(ObClient *self)
+{
+    action_run_string("Raise", self);
 }
 
 gboolean client_focused(ObClient *self)
This page took 0.021296 seconds and 4 git commands to generate.