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



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]