mirror of
https://github.com/gryf/wmaker.git
synced 2026-03-11 03:55:53 +01:00
Fix for unmaximize.
New way for traverse windows introduced an regression for maximize toggle from keyboard. Bring the maximize toggle back.
This commit is contained in:
@@ -492,33 +492,31 @@ void handleMaximize(WWindow *wwin, int directions)
|
|||||||
if ((wwin->flags.old_maximized & MAX_MAXIMUS) &&
|
if ((wwin->flags.old_maximized & MAX_MAXIMUS) &&
|
||||||
!(requested & MAX_MAXIMUS))
|
!(requested & MAX_MAXIMUS))
|
||||||
wMaximizeWindow(wwin, MAX_MAXIMUS | flags, head);
|
wMaximizeWindow(wwin, MAX_MAXIMUS | flags, head);
|
||||||
else {
|
else if (requested & MAX_LEFTHALF && current & MAX_LEFTHALF) {
|
||||||
if (requested & MAX_LEFTHALF && current & MAX_LEFTHALF) {
|
p.x = wwin->frame_x - 100;
|
||||||
p.x = wwin->frame_x - 100;
|
p.y = 0;
|
||||||
p.y = 0;
|
|
||||||
|
|
||||||
if (p.x > 0) {
|
if (p.x > 0) {
|
||||||
head = wGetHeadForPoint(wwin->screen_ptr, p);
|
|
||||||
if (head != wGetHeadForWindow(wwin)) {
|
|
||||||
effective |= MAX_RIGHTHALF;
|
|
||||||
effective |= MAX_VERTICAL;
|
|
||||||
effective &= ~(MAX_HORIZONTAL | MAX_LEFTHALF);
|
|
||||||
wMaximizeWindow(wwin, effective | flags, head);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (requested & MAX_RIGHTHALF && current & MAX_RIGHTHALF) {
|
|
||||||
p.x = wwin->frame_x + wwin->frame->core->width + 100;
|
|
||||||
p.y = 0;
|
|
||||||
head = wGetHeadForPoint(wwin->screen_ptr, p);
|
head = wGetHeadForPoint(wwin->screen_ptr, p);
|
||||||
if (head != wGetHeadForWindow(wwin)) {
|
if (head != wGetHeadForWindow(wwin)) {
|
||||||
effective |= MAX_LEFTHALF;
|
effective |= MAX_RIGHTHALF;
|
||||||
effective |= MAX_VERTICAL;
|
effective |= MAX_VERTICAL;
|
||||||
effective &= ~(MAX_HORIZONTAL | MAX_RIGHTHALF);
|
effective &= ~(MAX_HORIZONTAL | MAX_LEFTHALF);
|
||||||
wMaximizeWindow(wwin, effective | flags, head);
|
wMaximizeWindow(wwin, effective | flags, head);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (requested & MAX_RIGHTHALF && current & MAX_RIGHTHALF) {
|
||||||
|
p.x = wwin->frame_x + wwin->frame->core->width + 100;
|
||||||
|
p.y = 0;
|
||||||
|
head = wGetHeadForPoint(wwin->screen_ptr, p);
|
||||||
|
if (head != wGetHeadForWindow(wwin)) {
|
||||||
|
effective |= MAX_LEFTHALF;
|
||||||
|
effective |= MAX_VERTICAL;
|
||||||
|
effective &= ~(MAX_HORIZONTAL | MAX_RIGHTHALF);
|
||||||
|
wMaximizeWindow(wwin, effective | flags, head);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
wUnmaximizeWindow(wwin);
|
||||||
/* these alone mean vertical|horizontal toggle */
|
/* these alone mean vertical|horizontal toggle */
|
||||||
} else if ((effective == MAX_LEFTHALF) ||
|
} else if ((effective == MAX_LEFTHALF) ||
|
||||||
(effective == MAX_RIGHTHALF) ||
|
(effective == MAX_RIGHTHALF) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user