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].

Reply via email to