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); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits