better support for relative resizing
Dana Jansens danakj@orodu.net
3 files changed,
10 insertions(+),
25 deletions(-)
M
util/epist/screen.cc
→
util/epist/screen.cc
@@ -274,11 +274,11 @@ window->move(window->x() + it->number(), window->y());
return; case Action::resizeWindowWidth: - window->resize(it->number(), 0); + window->resizeRel(it->number(), 0); return; case Action::resizeWindowHeight: - window->resize(0, it->number()); + window->resizeRel(0, it->number()); return; case Action::toggleshade:
M
util/epist/window.cc
→
util/epist/window.cc
@@ -336,34 +336,18 @@ XMoveWindow(_epist->getXDisplay(), _window, x, y);
} -void XWindow::resize(int dwidth, int dheight) const { +void XWindow::resizeRel(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; - } + unsigned int width = _rect.width(), height = _rect.height(); + unsigned int wdest = width + (dwidth * _inc_x) / _inc_x * _inc_x + _base_x; + unsigned int hdest = height + (dheight * _inc_y) / _inc_y * _inc_y + _base_y; + XResizeWindow(_epist->getXDisplay(), _window, wdest, hdest); } -void XWindow::resize(unsigned int width, unsigned int height) const { +void XWindow::resizeAbs(unsigned int width, unsigned int height) const { // resize in increments if requested by the window unsigned int wdest = width / _inc_x * _inc_x + _base_x;
M
util/epist/window.hh
→
util/epist/window.hh
@@ -111,7 +111,8 @@ void iconify() const;
void focus() const; void sendTo(unsigned int dest) const; void move(int x, int y) const; - void resize(unsigned int width, unsigned int height) const; + void resizeRel(int dwidth, int dheight) const; + void resizeAbs(unsigned int width, unsigned int height) const; void toggleMaximize(Max max) const; // i hate toggle functions void maximize(Max max) const;