diff --git a/src/client.c b/src/client.c index 952421165243c7f97dfb58ffaf61594f5f0bf3a4..f0538a2cd4294367cf5622d4981e669bb5d93b7b 100644 --- a/src/client.c +++ b/src/client.c @@ -3394,6 +3394,11 @@ clientToggleMaximized (Client *c, int mode, gboolean restore_position) clientSetNetActions (c); if (restore_position && FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MANAGED)) { + if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED)) + { + /* It's a shame, we are configuring the same client twice in a row */ + clientUnshade (c); + } clientConfigure (c, &wc, CWWidth | CWHeight | CWX | CWY, CFG_FORCE_REDRAW); } /* Do not update the state while moving/resizing, CSD windows may resize */ diff --git a/src/client.h b/src/client.h index 7aa93f37dde6523f11a12ce7874cda1c1f1e9e83..aa2b1e0abb6fcb0466a3c8b172a195998102f7ba 100644 --- a/src/client.h +++ b/src/client.h @@ -229,7 +229,9 @@ !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN)) #define CLIENT_CAN_FILL_WINDOW(c) (FLAG_TEST(c->xfwm_flags, XFWM_FLAG_HAS_RESIZE | \ XFWM_FLAG_IS_RESIZABLE) && \ - !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN | CLIENT_FLAG_MAXIMIZED)) + !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN | \ + CLIENT_FLAG_MAXIMIZED | \ + CLIENT_FLAG_SHADED)) #define CLIENT_CAN_TILE_WINDOW(c) (CLIENT_CAN_MAXIMIZE_WINDOW(c) && \ !FLAG_TEST (c->flags, CLIENT_FLAG_SHADED) && \ (c->type & WINDOW_NORMAL))