all repos — openbox @ d8967bd534ff10a234fed17059fb92d985be9176

openbox fork - make it a bit more like ryudo

support better resizing a delta value instead of an absolute value
Dana Jansens danakj@orodu.net
commit

d8967bd534ff10a234fed17059fb92d985be9176

parent

20045e735d44b86d5dc0315f289dcbde8663a2e8

2 files changed, 29 insertions(+), 2 deletions(-)

jump to
M util/epist/screen.ccutil/epist/screen.cc

@@ -274,11 +274,11 @@ window->move(window->x() + it->number(), window->y());

return; case Action::resizeWindowWidth: - window->resize(window->width() + it->number(), window->height()); + window->resize(it->number(), 0); return; case Action::resizeWindowHeight: - window->resize(window->width(), window->height() + it->number()); + window->resize(0, it->number()); return; case Action::toggleshade:
M util/epist/window.ccutil/epist/window.cc

@@ -336,6 +336,33 @@ XMoveWindow(_epist->getXDisplay(), _window, x, y);

} +void XWindow::resize(int dwidth, int dheight) const { + // resize in increments if requested by the window + + unsigned int wdest = _rect.width() + (dwidth * _inc_x) / + _inc_x * _inc_x + _base_x; + unsigned int hdest = _rect.height() + (dheight * _inc_y) / + _inc_y * _inc_y + _base_y; + + if (width > wdest) { + while (width > wdest) + wdest += _inc_x; + } else { + while (width < wdest) + wdest -= _inc_x; + } + if (height > hdest) { + while (height > hdest) + hdest += _inc_y; + } else { + while (height < hdest) + hdest -= _inc_y; + } + + XResizeWindow(_epist->getXDisplay(), _window, wdest, hdest); +} + + void XWindow::resize(unsigned int width, unsigned int height) const { // resize in increments if requested by the window