]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
Fix stacking for transients vs helper windows. Fixes bug #3851
[chaz/openbox] / openbox / client.c
index 91693f999ab8c7e9c490695937b3c3fd2037a372..a91b9503e09ef62d9eb45321aa83fbc918f8de62 100644 (file)
@@ -505,9 +505,10 @@ void client_manage(Window window, ObPrompt *prompt)
 
         if (!activate) {
             /* if the client isn't stealing focus, then hilite it so the user
-               knows it is there */
-            /* XXX don't do this if we're restoring from a session */
-            client_hilite(self, TRUE);
+               knows it is there, but don't do this if we're restoring from a
+               session */
+            if (!client_restore_session_stacking(self))
+                client_hilite(self, TRUE);
         }
     }
     else {
@@ -3929,14 +3930,15 @@ static void client_present(ObClient *self, gboolean here, gboolean raise,
 }
 
 /* this function exists to map to the net_active_window message in the ewmh */
-void client_activate(ObClient *self, gboolean here, gboolean raise,
+void client_activate(ObClient *self, gboolean desktop, gboolean raise,
                      gboolean unshade, gboolean user)
 {
-    if ((user && (self->desktop == DESKTOP_ALL ||
+    if ((user && (desktop ||
+                  self->desktop == DESKTOP_ALL ||
                   self->desktop == screen_desktop)) ||
         client_can_steal_focus(self, event_curtime, CurrentTime))
     {
-        client_present(self, here, raise, unshade);
+        client_present(self, FALSE, raise, unshade);
     }
     else
         client_hilite(self, TRUE);
This page took 0.027282 seconds and 4 git commands to generate.