mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 04:48:06 +01:00
simplified logic of handleMaximize function
This commit is contained in:
committed by
Carlos R. Mafra
parent
f10ec42ba8
commit
33343bcd59
@@ -513,60 +513,26 @@ void handleMaximize(WWindow *wwin, int directions)
|
|||||||
wMaximizeWindow(wwin, flags);
|
wMaximizeWindow(wwin, flags);
|
||||||
else
|
else
|
||||||
wUnmaximizeWindow(wwin);
|
wUnmaximizeWindow(wwin);
|
||||||
}
|
/* these alone mean vertical toggle */
|
||||||
else {
|
} else if ((effective == MAX_LEFTHALF) ||
|
||||||
/* MAX_MAXIMUS takes precedence */
|
(effective == MAX_RIGHTHALF))
|
||||||
effective &= ~MAX_MAXIMUS;
|
|
||||||
if (requested & MAX_MAXIMUS) {
|
|
||||||
/* window was previously Maximusized then maximized */
|
|
||||||
if ((wwin->flags.old_maximized & MAX_MAXIMUS) && !current) {
|
|
||||||
wUnmaximizeWindow(wwin);
|
wUnmaximizeWindow(wwin);
|
||||||
return;
|
else {
|
||||||
}
|
if ((requested == (MAX_HORIZONTAL | MAX_VERTICAL)) ||
|
||||||
else
|
(requested == MAX_MAXIMUS))
|
||||||
effective = MAX_MAXIMUS;
|
|
||||||
}
|
|
||||||
else if (requested == (MAX_HORIZONTAL | MAX_VERTICAL))
|
|
||||||
effective = requested;
|
effective = requested;
|
||||||
else {
|
else {
|
||||||
/* handle MAX_HORIZONTAL -> MAX_(LEFT|RIGHT)HALF */
|
if (requested & MAX_LEFTHALF) {
|
||||||
if (IS_MAX_HORIZONTALLY(current)) {
|
|
||||||
if (IS_MAX_HORIZONTALLY(requested)) {
|
|
||||||
effective &= ~(MAX_HORIZONTAL | MAX_LEFTHALF | MAX_RIGHTHALF);
|
|
||||||
effective |= (requested & (MAX_HORIZONTAL | MAX_LEFTHALF | MAX_RIGHTHALF));
|
|
||||||
if (requested & MAX_HORIZONTAL) {
|
|
||||||
/* restore to half maximization */
|
|
||||||
if (wwin->flags.old_maximized & MAX_LEFTHALF)
|
|
||||||
effective |= MAX_LEFTHALF;
|
|
||||||
else if (wwin->flags.old_maximized & MAX_RIGHTHALF)
|
|
||||||
effective |= MAX_RIGHTHALF;
|
|
||||||
}
|
|
||||||
/* MAX_VERTICAL is implicit with MAX_(LEFT|RIGHT)HALF */
|
|
||||||
else
|
|
||||||
effective |= MAX_VERTICAL;
|
effective |= MAX_VERTICAL;
|
||||||
} else {
|
effective &= ~(MAX_HORIZONTAL | MAX_RIGHTHALF);
|
||||||
/* toggling MAX_VERTICAL */
|
} else if (requested & MAX_RIGHTHALF) {
|
||||||
if ((requested & MAX_VERTICAL) &&
|
|
||||||
(current & MAX_VERTICAL)) {
|
|
||||||
effective &= ~(MAX_LEFTHALF | MAX_RIGHTHALF | MAX_VERTICAL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* handle MAX_VERTICAL -> MAX_(LEFT|RIGHT)HALF */
|
|
||||||
if (current & MAX_VERTICAL) {
|
|
||||||
if ((requested & MAX_LEFTHALF) ||
|
|
||||||
(requested & MAX_RIGHTHALF)) {
|
|
||||||
effective |= MAX_VERTICAL;
|
effective |= MAX_VERTICAL;
|
||||||
|
effective &= ~(MAX_HORIZONTAL | MAX_LEFTHALF);
|
||||||
}
|
}
|
||||||
}
|
effective &= ~MAX_MAXIMUS;
|
||||||
/* toggling MAX_HORIZONTAL */
|
|
||||||
if ((requested & MAX_HORIZONTAL) &&
|
|
||||||
(current & MAX_HORIZONTAL))
|
|
||||||
effective &= ~MAX_HORIZONTAL;
|
|
||||||
}
|
}
|
||||||
wMaximizeWindow(wwin, effective | flags);
|
wMaximizeWindow(wwin, effective | flags);
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the window boundary coordinates */
|
/* the window boundary coordinates */
|
||||||
|
|||||||
Reference in New Issue
Block a user