Blob Blame History Raw
diff -Nur xfwm4-4.6.1.orig/src/focus.c xfwm4-4.6.1/src/focus.c
--- xfwm4-4.6.1.orig/src/focus.c	2009-04-15 01:58:59.000000000 -0600
+++ xfwm4-4.6.1/src/focus.c	2009-07-28 19:31:44.000000000 -0600
@@ -214,7 +214,12 @@
     {
         Client *c2 = clientGetFocus();
 
-        if ((c2 != NULL) && (c2->win_layer == c->win_layer))
+        /*
+         * Place windows under the currently focused only if focus
+         * stealing prevention had prevented the focus transition,
+         * otherwise, leave the unfocused window on top.
+         */
+        if ((c2 != NULL) && (c2->win_layer == c->win_layer) && prevented)
         {
             clientSortRing(c);
             clientLower (c, c2->frame);