diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-08-07 16:27:27 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-08-07 16:27:27 +0000 |
| commit | 90ee16fc8664f38683edf3b2eb4dd376a572f4ce (patch) | |
| tree | a8fcf766091afc8817cd186104d8b322d44bdb19 /util | |
| parent | d8967bd534ff10a234fed17059fb92d985be9176 (diff) | |
better support for relative resizing
Diffstat (limited to 'util')
| -rw-r--r-- | util/epist/screen.cc | 4 | ||||
| -rw-r--r-- | util/epist/window.cc | 28 | ||||
| -rw-r--r-- | 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; |
