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

Fix Maximize/Unmaximize in window menu

Add variable to track window startup size and use it when checking for changes
This commit is contained in:
Amadeusz Sławiński
2012-11-23 20:16:59 +01:00
committed by Carlos R. Mafra
parent ea7ef65b19
commit eae7ef6c59

View File

@@ -1211,6 +1211,8 @@ int wKeyboardMoveResizeWindow(WWindow * wwin)
int vert_border = wwin->frame->top_width + wwin->frame->bottom_width; int vert_border = wwin->frame->top_width + wwin->frame->bottom_width;
int src_x = wwin->frame_x; int src_x = wwin->frame_x;
int src_y = wwin->frame_y; int src_y = wwin->frame_y;
int original_w = w;
int original_h = h;
int done, off_x, off_y, ww, wh; int done, off_x, off_y, ww, wh;
int kspeed = _KS; int kspeed = _KS;
int opaqueMoveResize = wPreferences.opaque_move_resize_keyboard; int opaqueMoveResize = wPreferences.opaque_move_resize_keyboard;
@@ -1517,10 +1519,10 @@ int wKeyboardMoveResizeWindow(WWindow * wwin)
} }
} }
} else { } else {
if (wwin->client.width != ww) if (ww != original_w)
wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_MAXIMUS); wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_MAXIMUS);
if (wwin->client.height != wh - vert_border) if (wh != original_h)
wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS); wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS);
wWindowConfigure(wwin, src_x + off_x, src_y + off_y, ww, wh - vert_border); wWindowConfigure(wwin, src_x + off_x, src_y + off_y, ww, wh - vert_border);
@@ -1877,6 +1879,8 @@ void wMouseResizeWindow(WWindow * wwin, XEvent * ev)
int orig_fy = fy; int orig_fy = fy;
int orig_fw = fw; int orig_fw = fw;
int orig_fh = fh; int orig_fh = fh;
int original_fw = fw;
int original_fh = fh;
int head = ((wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1) int head = ((wPreferences.auto_arrange_icons && wXineramaHeads(scr) > 1)
? wGetHeadForWindow(wwin) ? wGetHeadForWindow(wwin)
: scr->xine_info.primary_head); : scr->xine_info.primary_head);
@@ -2072,10 +2076,10 @@ void wMouseResizeWindow(WWindow * wwin, XEvent * ev)
WMUnmapWidget(scr->gview); WMUnmapWidget(scr->gview);
XUngrabServer(dpy); XUngrabServer(dpy);
if (wwin->client.width != fw) if (fw != original_fw)
wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_MAXIMUS); wwin->flags.maximized &= ~(MAX_HORIZONTAL | MAX_MAXIMUS);
if (wwin->client.height != fh - vert_border) if (fh != original_fh)
wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS); wwin->flags.maximized &= ~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS);
wWindowConfigure(wwin, fx, fy, fw, fh - vert_border); wWindowConfigure(wwin, fx, fy, fw, fh - vert_border);