[sawfish] added double/halve-window-size functions



commit 428c7d123859ec1a6208992acce0a544c1b9301c
Author: chrisb <zanghar freenet de>
Date:   Sat Aug 29 18:28:29 2009 +0200

    added double/halve-window-size functions

 lisp/sawfish/wm/commands/move-resize.jl |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)
---
diff --git a/lisp/sawfish/wm/commands/move-resize.jl b/lisp/sawfish/wm/commands/move-resize.jl
index 799653d..b1af5cc 100644
--- a/lisp/sawfish/wm/commands/move-resize.jl
+++ b/lisp/sawfish/wm/commands/move-resize.jl
@@ -24,7 +24,9 @@
     (export move-window-interactively
 	    resize-window-interactively
 	    move-selected-window
-	    resize-selected-window)
+	    resize-selected-window
+	    double-window-size
+	    halve-window-size)
 
     (open rep
 	  rep.system
@@ -512,6 +514,22 @@
 		      (copy-sequence move-resize-moving-edges)
 		    (list 'top 'bottom 'left 'right)))))))
 
+  (define (resize-by-factor win amount)
+    "Multiply win's dimensions by amount"
+    (let* (
+      (orig-wid (car (window-dimensions win)))
+      (orig-hgt (cdr (window-dimensions win)))
+      (new-wid (inexact->exact (floor (* amount orig-wid))))
+      (new-hgt (inexact->exact (floor (* amount orig-hgt)))))
+    ; this expects integers ("800 600") and fails on floats ("800. 600.")
+    (resize-window-with-hints* win new-wid new-hgt)))
+
+  (define (double-window-size w)
+    (resize-by-factor w 2))
+
+  (define (halve-window-size w)
+    (resize-by-factor w 0.5))
+
 ;;; hook functions
 
   (define (lost-window w)
@@ -544,9 +562,9 @@
 	(resize-window-interactively w))))
 
   ;;###autoload
-  (define-command 'move-window-interactively
-    move-window-interactively #:spec "%W")
-  (define-command 'resize-window-interactively
-    resize-window-interactively #:spec "%W")
+  (define-command 'move-window-interactively move-window-interactively #:spec "%W")
+  (define-command 'resize-window-interactively resize-window-interactively #:spec "%W")
   (define-command 'move-selected-window move-selected-window)
-  (define-command 'resize-selected-window resize-selected-window))
+  (define-command 'resize-selected-window resize-selected-window)
+  (define-command 'double-window-size double-window-size #:spec "%W")
+  (define-command 'halve-window-size halve-window-size #:spec "%W"))



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