The change is done in commit 6071da, by Jeremy. Let's wait for him. (Well, he seems to be busy. ;)
Yes, it's a bug. Teika (Teika kazura) On Sat, 5 Dec 2009 14:47:09 +0100, Christopher Roy Bratusek wrote: > Hi all, > > Before maximize-window-horizontally + maximize-window-vertically acted > together, > so the window first got MAXIMIZED_HORZ (state + size) then MAXIMIZED_VERT > (state + size). > > Now maximize-window-horizontally + maximize-window-vertically are oponents, > so the window first gets MAXIMIZED_HORZ (sate + size), then it looses > MAXIMIZED_HORZ (state + size), > THEN it gets MAXIMIZED_VERT (state + size). > > Why? Because MAXIMIZED_HORZ + MAXIMIZED_VERT *!=* MAXIMIZED. > > For those who don't understand that: > I have trayer on the bottom of my screen, but it's width is not screen-width, > it's smaller, now when a windows left lower corner is on (0 . screen-height) > and I call > maximize-window-horizontally the window does not get width = screen-width and > MAXIMIZED_HORZ, it gets width = until trayer begins and MAXIMIZED_HORZ, now > say the window > already had MAXIMIZED_VERT, normally then reopening the window with this > setup, the size should > now be (until trayer starts . screen-height), but it's not, now it's > (screen-width . screen-height), > and that is an epic fail. > > For the (partially) old behaviour refer back to the -toggle variants, they > work as the non -toggle > ones did before but -of course- here now also MAXIMIZED_HORZ + MAXIMIZED_VERT > != MAXIMIZED. > > Chris > > Attached patch fixes the issue. > > diff --git a/lisp/sawfish/wm/state/maximize.jl > b/lisp/sawfish/wm/state/maximize.jl > index 7341347..10c6350 100644 > --- a/lisp/sawfish/wm/state/maximize.jl > +++ b/lisp/sawfish/wm/state/maximize.jl > @@ -419,10 +419,12 @@ unmaximized, state." > > (define (maximize-window-vertically w) > "Maximize the vertical dimension of the window." > + (unmaximize-window w 'horizontal) > (maximize-window w 'vertical)) > > (define (maximize-window-horizontally w) > "Maximize the horizontal dimension of the window." > + (unmaximize-window w 'vertical) > (maximize-window w 'horizontal)) > > (define (maximize-window-toggle w #!optional direction) > @@ -587,7 +589,7 @@ across all Xinerama and unmaximized." > (define-command 'maximize-window-fullxinerama > maximize-window-fullxinerama #:spec "%W > t") > - > + > (define-command 'maximize-window-fullxinerama-toggle > maximize-window-fullxinerama-toggle #:spec "%W") > > diff --git a/lisp/sawfish/wm/state/wm-spec.jl > b/lisp/sawfish/wm/state/wm-spec.jl > index 3ed1853..899b533 100644 > --- a/lisp/sawfish/wm/state/wm-spec.jl > +++ b/lisp/sawfish/wm/state/wm-spec.jl > @@ -553,12 +553,6 @@ > 'toggle))) > (atom1 (x-atom-name (aref data 1))) > (atom2 (x-atom-name (aref data 2)))) > - (when (or (and (eq atom1 '_NET_WM_STATE_MAXIMIZED_VERT) > - (eq atom2 '_NET_WM_STATE_MAXIMIZED_HORZ)) > - (and (eq atom2 '_NET_WM_STATE_MAXIMIZED_VERT) > - (eq atom1 '_NET_WM_STATE_MAXIMIZED_HORZ))) > - (setq atom1 '_NET_WM_STATE_MAXIMIZED) > - (setq atom2 nil)) > (when atom1 > (call-state-fun w atom1 mode)) > (when atom2
