1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 20:38:08 +01:00

Mod+Wheel Window Resize

This patch adds the ability to resize windows with the mouse wheel
while holding the Mod key. This currently ignores wWindowConstrainSize
until I can figure out a way to repeatably resize windows with
fixed size increments (like xterm) using this method.

This also adds a slider to WPrefs to choose the increment with which
the wheel will resize a window.
This commit is contained in:
Johann Haarhoff
2009-10-11 21:36:46 +02:00
committed by Carlos R. Mafra
parent 781b663341
commit a063338175
4 changed files with 64 additions and 4 deletions

View File

@@ -2966,6 +2966,11 @@ static void titlebarDblClick(WCoreWindow * sender, void *data, XEvent * event)
static void frameMouseDown(WObjDescriptor * desc, XEvent * event)
{
WWindow *wwin = desc->parent;
unsigned int new_width;
unsigned int new_height;
unsigned int resize_increment;
resize_increment = wPreferences.resize_increment;
event->xbutton.state &= ValidModMask;
@@ -2990,10 +2995,21 @@ static void frameMouseDown(WObjDescriptor * desc, XEvent * event)
#endif
return;
}
if (event->xbutton.button == Button3)
if (event->xbutton.button == Button3) {
wMouseResizeWindow(wwin, event);
else if (event->xbutton.button == Button1 || event->xbutton.button == Button2)
} else if (event->xbutton.button == Button4) {
new_width = wwin->client.width - resize_increment;
new_height = wwin->client.height - resize_increment;
//wWindowConstrainSize(wwin, &new_width,&new_height);
wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, new_width, new_height);
} else if (event->xbutton.button == Button5) {
new_width = wwin->client.width + resize_increment;
new_height = wwin->client.height + resize_increment;
//wWindowConstrainSize(wwin, &new_width,&new_height);
wWindowConfigure(wwin, wwin->frame_x, wwin->frame_y, new_width, new_height);
} else if (event->xbutton.button == Button1 || event->xbutton.button == Button2) {
wMouseMoveWindow(wwin, event);
}
XUngrabPointer(dpy, CurrentTime);
}
}