diff '--width=140' -dru xfwm4-4.10.0/src/focus.c xfwm4-4.10.0-patched//src/focus.c --- xfwm4-4.10.0/src/focus.c 2012-04-28 22:56:34.000000000 +0200 +++ xfwm4-4.10.0-patched//src/focus.c 2012-06-22 20:32:36.750541528 +0200 @@ -475,7 +475,7 @@ void clientUpdateFocus (ScreenInfo *screen_info, Client * c, unsigned short flags) { - Client *c2; + Client *c2, *prev_top; TRACE ("entering clientUpdateFocus"); @@ -495,9 +495,16 @@ } client_focus = c; - if (c2) + + prev_top = screen_info->windows_stack->data; + if (prev_top != c) + { + clientAdjustFullscreenLayer (prev_top, FALSE); + frameQueueDraw (prev_top, FALSE); + clientUpdateOpacity (prev_top); + } + if (c2 && c2 != prev_top) { - clientAdjustFullscreenLayer (c2, FALSE); frameQueueDraw (c2, FALSE); clientUpdateOpacity (c2); }