724
724
&& CONSTRAINED_WINDOW (c)
725
725
&& !((c->gravity == StaticGravity) && (c->x == 0) && (c->y == 0)))
727
clientConstrainPos (c, CFG_KEEP_VISIBLE);
727
clientConstrainPos (c, flags & CFG_KEEP_VISIBLE);
3467
3467
/* Xrandr stuff: on screen size change, make sure all clients are still visible */
3469
clientScreenResize(ScreenInfo *screen_info)
3469
clientScreenResize(ScreenInfo *screen_info, gboolean fully_visible)
3471
3471
Client *c = NULL;
3472
3472
GList *list, *list_of_windows;
3473
3473
XWindowChanges wc;
3474
unsigned short configure_flags;
3475
3476
list_of_windows = clientGetStackList (screen_info);
3502
3503
/* Recompute size and position of maximized windows */
3503
3504
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT))
3505
/* Too bad, the flags used internally are different from the WIN_STATE_* bits */
3506
maximization_flags |= FLAG_TEST (c->flags,
3507
CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
3508
maximization_flags |= FLAG_TEST (c->flags,
3509
CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
3511
/* Force an update by clearing the internal flags */
3512
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
3513
clientToggleMaximized (c, maximization_flags, FALSE);
3517
wc.width = c->width;
3518
wc.height = c->height;
3519
clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, CFG_NOTIFY);
3506
/* Too bad, the flags used internally are different from the WIN_STATE_* bits */
3507
maximization_flags |= FLAG_TEST (c->flags,
3508
CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
3509
maximization_flags |= FLAG_TEST (c->flags,
3510
CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
3512
/* Force an update by clearing the internal flags */
3513
FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
3514
clientToggleMaximized (c, maximization_flags, FALSE);
3518
wc.width = c->width;
3519
wc.height = c->height;
3520
clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, CFG_NOTIFY);
3525
clientConfigure (c, &wc, CWX | CWY, CFG_CONSTRAINED | CFG_REQUEST | CFG_KEEP_VISIBLE);
3524
configure_flags = CFG_CONSTRAINED | CFG_REQUEST;
3527
configure_flags |= CFG_KEEP_VISIBLE;
3532
clientConfigure (c, &wc, CWX | CWY, configure_flags);