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

- Implemented a better logic to preserve the window's old geometry when

maximizing to support succesive maximizations in different directions
  without the need to do an intermediary un-maximize step (eliminates flicker)
- Made keyboard/mouse maximization behavior consinstent relative to each other
This commit is contained in:
dan
2003-07-05 02:39:37 +00:00
parent b0d72a3db2
commit bd7943d9a7
5 changed files with 69 additions and 31 deletions

View File

@@ -1444,35 +1444,41 @@ handleKeyPress(XEvent *event)
break;
case WKBD_MAXIMIZE:
if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_resizable)) {
CloseWindowMenu(scr);
if (wwin->flags.maximized) {
int newdir = (MAX_VERTICAL|MAX_HORIZONTAL);
CloseWindowMenu(scr);
if (wwin->flags.maximized == newdir) {
wUnmaximizeWindow(wwin);
} else {
wMaximizeWindow(wwin, MAX_VERTICAL|MAX_HORIZONTAL|MAX_KEYBOARD);
} else {
wMaximizeWindow(wwin, newdir|MAX_KEYBOARD);
}
}
break;
case WKBD_VMAXIMIZE:
if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_resizable)) {
int newdir = (MAX_VERTICAL ^ wwin->flags.maximized);
CloseWindowMenu(scr);
if (wwin->flags.maximized) {
wUnmaximizeWindow(wwin);
if (newdir) {
wMaximizeWindow(wwin, newdir|MAX_KEYBOARD);
} else {
wMaximizeWindow(wwin, MAX_VERTICAL|MAX_KEYBOARD);
}
wUnmaximizeWindow(wwin);
}
}
break;
case WKBD_HMAXIMIZE:
if (ISMAPPED(wwin) && ISFOCUSED(wwin) && !WFLAGP(wwin, no_resizable)) {
int newdir = (MAX_HORIZONTAL ^ wwin->flags.maximized);
CloseWindowMenu(scr);
if (wwin->flags.maximized) {
wUnmaximizeWindow(wwin);
if (newdir) {
wMaximizeWindow(wwin, newdir|MAX_KEYBOARD);
} else {
wMaximizeWindow(wwin, MAX_HORIZONTAL|MAX_KEYBOARD);
}
wUnmaximizeWindow(wwin);
}
}
break;
case WKBD_RAISE: