Re: [PATCH] maximize-horizontally/vertically behaviour change + fix



Am Tue, 08 Dec 2009 13:55:03 +0900 (JST)
schrieb Teika Kazura <teika lavabit com>:

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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]