xatom->setValue(client.window, XAtom::net_wm_visible_name, XAtom::utf8,
client.title);
-#define DEBUG_WITH_ID 1
#ifdef DEBUG_WITH_ID
// the 16 is the 8 chars of the debug text plus the number
char *tmp = new char[client.title.length() + 16];
frame.margin.top + frame.margin.bottom);
/*
- if a position change ha been specified, then that position will be used
- instead of determining a position based on the window's gravity.
+ if a position change has been specified, then that position will be
+ used instead of determining a position based on the window's gravity.
*/
- if (cr->value_mask & (CWX | CWY)) {
+ if (! (cr->value_mask & (CWX | CWY))) {
Corner corner;
switch (client.win_gravity) {
case NorthEastGravity:
base_height = (client.base_height) ? client.base_height :
client.min_height;
- // constrain
- if (dw < client.min_width) dw = client.min_width;
- if (dh < client.min_height) dh = client.min_height;
- if (dw > client.max_width) dw = client.max_width;
- if (dh > client.max_height) dh = client.max_height;
+ // constrain, but only if the min/max are being used. if they aren't, then
+ // this resize is going to be from a ConfigureRequest because the window
+ // isn't allowed to be resized by the user. And in that case, we don't want
+ // to limit what the app can do
+ if (client.max_width > client.min_width ||
+ client.max_height > client.min_height) {
+ if (dw < client.min_width) dw = client.min_width;
+ if (dh < client.min_height) dh = client.min_height;
+ if (dw > client.max_width) dw = client.max_width;
+ if (dh > client.max_height) dh = client.max_height;
+ }
assert(dw >= base_width && dh >= base_height);