summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-08-07 16:27:27 +0000
committerDana Jansens <danakj@orodu.net>2002-08-07 16:27:27 +0000
commit90ee16fc8664f38683edf3b2eb4dd376a572f4ce (patch)
treea8fcf766091afc8817cd186104d8b322d44bdb19 /util
parentd8967bd534ff10a234fed17059fb92d985be9176 (diff)
better support for relative resizing
Diffstat (limited to 'util')
-rw-r--r--util/epist/screen.cc4
-rw-r--r--util/epist/window.cc28
-rw-r--r--util/epist/window.hh3
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;