Am Tue, 08 Dec 2009 13:55:03 +0900 (JST) schrieb Teika Kazura <[email protected]>:
> The change is done in commit 6071da, by Jeremy. Let's wait for > him. (Well, he seems to be busy. ;) Hmm... nope, the problem exists for years now, see: https://bugzilla.gnome.org/show_bug.cgi?id=104591 > 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 > >
