Hello,
When a maximized window is resized (either using wmaker or because the
application changed the window size), and you want to maximize it again,
you first have to unmaximize it (because wmaker thinks the window is
still maximized), and only then you can maximize it. The following patch
corrects this behaviour.
By the way, the git repository seems to have a problem:
$git clone http://repo.or.cz/wmaker-crm.git
Initialized empty Git repository in /home/nico/wmaker-crm/.git/
fatal: http://repo.or.cz/wmaker-crm.git/info/refs not found: did you run
git update-server-info on the server?
Nicolas
--- client.c.old 2009-09-12 19:24:31.000000000 +0200
+++ client.c 2009-09-12 19:28:37.000000000 +0200
@@ -254,7 +254,11 @@
else
nheight = wwin->frame->core->height -
wwin->frame->top_width - wwin->frame->bottom_width;
- wWindowConfigure(wwin, nx, ny, nwidth, nheight);
+ if (nwidth != wwin->old_geometry.width)
+ wwin->flags.maximized &= ~(MAX_HORIZONTAL |
MAX_MAXIMUS);
+ if (nheight != wwin->old_geometry.height)
+ wwin->flags.maximized &= ~(MAX_VERTICAL |
MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS);
+ wWindowConfigure(wwin, nx, ny, nwidth, nheight);
wwin->old_geometry.x = nx;
wwin->old_geometry.y = ny;
wwin->old_geometry.width = nwidth;
--- moveres.c.old 2009-09-12 19:24:24.000000000 +0200
+++ moveres.c 2009-09-12 19:43:50.000000000 +0200
@@ -1510,11 +1510,15 @@
}
}
} else {
- if (wwin->client.width != ww)
+ if (wwin->client.width != ww) {
wwin->flags.user_changed_width = 1;
+ wwin->flags.maximized &=
~(MAX_HORIZONTAL | MAX_MAXIMUS);
+ }
- if (wwin->client.height != wh -
vert_border)
+ if (wwin->client.height != wh -
vert_border) {
wwin->flags.user_changed_height = 1;
+ 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);
wWindowSynthConfigureNotify(wwin);
@@ -2070,11 +2074,15 @@
WMUnmapWidget(scr->gview);
XUngrabServer(dpy);
- if (wwin->client.width != fw)
+ if (wwin->client.width != fw) {
wwin->flags.user_changed_width = 1;
+ wwin->flags.maximized &=
~(MAX_HORIZONTAL | MAX_MAXIMUS);
+ }
- if (wwin->client.height != fh - vert_border)
+ if (wwin->client.height != fh -
vert_border) {
wwin->flags.user_changed_height
= 1;
+ wwin->flags.maximized &=
~(MAX_VERTICAL | MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS);
+ }
wWindowConfigure(wwin, fx, fy, fw, fh -
vert_border);
}
--
To unsubscribe, send mail to [email protected].