support better resizing a delta value instead of an absolute value
This commit is contained in:
parent
20045e735d
commit
d8967bd534
2 changed files with 29 additions and 2 deletions
|
@ -274,11 +274,11 @@ void screen::handleKeypress(const XEvent &e) {
|
|||
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:
|
||||
|
|
|
@ -336,6 +336,33 @@ void XWindow::move(int x, int y) const {
|
|||
}
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in a new issue