[Xfce4-commits] r30404 - in xfwm4/branches/xfce_4_6: . src

Olivier Fourdan olivier at xfce.org
Mon Jul 27 07:58:56 CEST 2009


Author: olivier
Date: 2009-07-27 05:58:56 +0000 (Mon, 27 Jul 2009)
New Revision: 30404

Modified:
   xfwm4/branches/xfce_4_6/ChangeLog
   xfwm4/branches/xfce_4_6/NEWS
   xfwm4/branches/xfce_4_6/src/client.c
   xfwm4/branches/xfce_4_6/src/focus.c
Log:
	* src/focus.c: Place windows on top of stack even when not focused in
	  focus follow mouse (Bug #5479).
	* src/client.c: Transition fullscreen windows back to their original
	  layer when another window is activated (Bug #3551)

Modified: xfwm4/branches/xfce_4_6/ChangeLog
===================================================================
--- xfwm4/branches/xfce_4_6/ChangeLog	2009-07-27 02:27:43 UTC (rev 30403)
+++ xfwm4/branches/xfce_4_6/ChangeLog	2009-07-27 05:58:56 UTC (rev 30404)
@@ -1,3 +1,10 @@
+2009-07-27	olivier
+
+	* src/focus.c: Place windows on top of stack even when not focused in
+	  focus follow mouse (Bug #5479).
+	* src/client.c: Transition fullscreen windows back to their original
+	  layer when another window is activated (Bug #3551)
+
 2009-05-22	olivier
 	* frame.c, tabwin.c: Fix mixed RTL/LTR text not rendering properly 
 	  in title and tabwin

Modified: xfwm4/branches/xfce_4_6/NEWS
===================================================================
--- xfwm4/branches/xfce_4_6/NEWS	2009-07-27 02:27:43 UTC (rev 30403)
+++ xfwm4/branches/xfce_4_6/NEWS	2009-07-27 05:58:56 UTC (rev 30404)
@@ -1,7 +1,11 @@
 4.6.2
 =====
 
+- Transition fullscreen windows back to their original layer 
+  when another window is activated (Bug #3551)
 - Fix mixed RTL/LTR text not rendering properly in title and tabwin
+- Place windows on top of stack even when not focused in focus follow mouse
+  (Bug #5479)
 
 4.6.1
 =====

Modified: xfwm4/branches/xfce_4_6/src/client.c
===================================================================
--- xfwm4/branches/xfce_4_6/src/client.c	2009-07-27 02:27:43 UTC (rev 30403)
+++ xfwm4/branches/xfce_4_6/src/client.c	2009-07-27 05:58:56 UTC (rev 30404)
@@ -2548,6 +2548,7 @@
 clientActivate (Client * c, guint32 timestamp)
 {
     ScreenInfo *screen_info;
+    Client *focused;
     Client *sibling;
 
     g_return_if_fail (c != NULL);
@@ -2555,8 +2556,15 @@
 
     screen_info = c->screen_info;
     sibling = clientGetTransientFor(c);
+    focused = clientGetFocus ();
+
     if ((screen_info->current_ws == c->win_workspace) || (screen_info->params->activate_action != ACTIVATE_ACTION_NONE))
     {
+        if ((focused) && (c != focused))
+        {
+            /* We might be able to avoid this if we are about to switch workspace */
+            clientAdjustFullscreenLayer (focused, FALSE);
+        }
         if (screen_info->current_ws != c->win_workspace)
         {
             if (screen_info->params->activate_action == ACTIVATE_ACTION_BRING)

Modified: xfwm4/branches/xfce_4_6/src/focus.c
===================================================================
--- xfwm4/branches/xfce_4_6/src/focus.c	2009-07-27 02:27:43 UTC (rev 30403)
+++ xfwm4/branches/xfce_4_6/src/focus.c	2009-07-27 05:58:56 UTC (rev 30404)
@@ -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);




More information about the Xfce4-commits mailing list