all repos — openbox @ 8f988b2bef5af05f0b5cddbc11b05c833158df5a

openbox fork - make it a bit more like ryudo

Make ResizeRelative resize in terms of pixels for windows with resize increments (Fix bug 5228)

If the resize is less than the window's resize increment then we bump it up
to ensure a resize does at least happen.
Dana Jansens danakj@orodu.net
commit

8f988b2bef5af05f0b5cddbc11b05c833158df5a

parent

9415459aea725f6a1dd4f91526e7a95090de0130

1 files changed, 11 insertions(+), 10 deletions(-)

jump to
M openbox/actions/resizerelative.copenbox/actions/resizerelative.c

@@ -70,24 +70,25 @@ gint x, y, ow, xoff, nw, oh, yoff, nh, lw, lh;

gint left = o->left, right = o->right, top = o->top, bottom = o->bottom; if (o->left_denom) - left = (left * c->area.width / c->size_inc.width) / o->left_denom; + left = left * c->area.width / o->left_denom; if (o->right_denom) - right = (right * c->area.width / c->size_inc.width) / o->right_denom; + right = right * c->area.width / o->right_denom; if (o->top_denom) - top = (top * c->area.height / c->size_inc.height) / o->top_denom; + top = top * c->area.height / o->top_denom; if (o->bottom_denom) - bottom = (bottom * c->area.height / c->size_inc.height) / o->bottom_denom; + bottom = bottom * c->area.height / o->bottom_denom; + // When resizing, if the resize has a non-zero value then make sure it + // is at least as big as the size increment so the window does actually + // resize. x = c->area.x; y = c->area.y; ow = c->area.width; - xoff = -left * c->size_inc.width; - nw = ow + right * c->size_inc.width - + left * c->size_inc.width; + xoff = -MAX(left, (left ? c->size_inc.width : 0)); + nw = ow + MAX(right + left, (right + left ? c->size_inc.width : 0)); oh = c->area.height; - yoff = -top * c->size_inc.height; - nh = oh + bottom * c->size_inc.height - + top * c->size_inc.height; + yoff = -MAX(top, (top ? c->size_inc.height : 0)); + nh = oh + MAX(bottom + top, (bottom + top ? c->size_inc.height : 0)); client_try_configure(c, &x, &y, &nw, &nh, &lw, &lh, TRUE); xoff = xoff == 0 ? 0 :