From 90ee16fc8664f38683edf3b2eb4dd376a572f4ce Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 7 Aug 2002 16:27:27 +0000 Subject: [PATCH] better support for relative resizing --- util/epist/screen.cc | 4 ++-- util/epist/window.cc | 28 ++++++---------------------- util/epist/window.hh | 3 ++- 3 files changed, 10 insertions(+), 25 deletions(-) diff --git a/util/epist/screen.cc b/util/epist/screen.cc index c4f0520b..a98e0ad1 100644 --- a/util/epist/screen.cc +++ b/util/epist/screen.cc @@ -274,11 +274,11 @@ void screen::handleKeypress(const XEvent &e) { 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: diff --git a/util/epist/window.cc b/util/epist/window.cc index c8cdf012..31787e6d 100644 --- a/util/epist/window.cc +++ b/util/epist/window.cc @@ -336,34 +336,18 @@ void XWindow::move(int x, int y) const { } -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; diff --git a/util/epist/window.hh b/util/epist/window.hh index 65ceda7b..c2452993 100644 --- a/util/epist/window.hh +++ b/util/epist/window.hh @@ -111,7 +111,8 @@ public: 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;