stumpwm-devel
[Top][All Lists]
Advanced

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

[STUMP] [PATCH] Added state to iresize


From: Raffael Mancini
Subject: [STUMP] [PATCH] Added state to iresize
Date: Mon, 30 Jun 2008 01:27:19 +0200
User-agent: Wanderlust/2.14.1 (Bad Medicine-pre) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.7 Emacs/23.0.60 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

Hi list,

I wrote a small patch that allows to abort from iresize mode. I don't
think it's very well made as I'm quite a lisp noob but it works for
me.

Greetings,
Raffael Mancini

---
 iresize.lisp |   49 +++++++++++++++++++++++++++++--------------------
 1 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/iresize.lisp b/iresize.lisp
index 9e4d235..1a5da33 100644
--- a/iresize.lisp
+++ b/iresize.lisp
@@ -45,36 +45,45 @@
     (let ((i *resize-increment*))
       (labels ((dk (m k c)
                  (define-key m k (format nil c i))))
-        (dk m (kbd "Up") "resize 0 -~D")
-        (dk m (kbd "C-p") "resize 0 -~D")
-        (dk m (kbd "p") "resize 0 -~D")
-        (dk m (kbd "k") "resize 0 -~D")
-
-        (dk m (kbd "Down") "resize 0 ~D")
-        (dk m (kbd "C-n") "resize 0 ~D")
-        (dk m (kbd "n") "resize 0 ~D")
-        (dk m (kbd "j") "resize 0 ~D")
-
-        (dk m (kbd "Left") "resize -~D 0")
-        (dk m (kbd "C-b") "resize -~D 0")
-        (dk m (kbd "b") "resize -~D 0")
-        (dk m (kbd "h") "resize -~D 0")
-
-        (dk m (kbd "Right") "resize ~D 0")
-        (dk m (kbd "C-f") "resize ~D 0")
-        (dk m (kbd "f") "resize ~D 0")
-        (dk m (kbd "l") "resize ~D 0")
+        (dk m (kbd "Up") "resize-with-state 0 -~D")
+        (dk m (kbd "C-p") "resize-with-state 0 -~D")
+        (dk m (kbd "p") "resize-with-state 0 -~D")
+        (dk m (kbd "k") "resize-with-state 0 -~D")
+
+        (dk m (kbd "Down") "resize-with-state 0 ~D")
+        (dk m (kbd "C-n") "resize-with-state 0 ~D")
+        (dk m (kbd "n") "resize-with-state 0 ~D")
+        (dk m (kbd "j") "resize-with-state 0 ~D")
+
+        (dk m (kbd "Left") "resize-with-state -~D 0")
+        (dk m (kbd "C-b") "resize-with-state -~D 0")
+        (dk m (kbd "b") "resize-with-state -~D 0")
+        (dk m (kbd "h") "resize-with-state -~D 0")
+
+        (dk m (kbd "Right") "resize-with-state ~D 0")
+        (dk m (kbd "C-f") "resize-with-state ~D 0")
+        (dk m (kbd "f") "resize-with-state ~D 0")
+        (dk m (kbd "l") "resize-with-state ~D 0")
         (define-key m (kbd "RET") "exit-iresize")
         (define-key m (kbd "C-g") "abort-iresize")
         (define-key m (kbd "ESC") "abort-iresize")))))
 
 (update-resize-map)
 
+(defvar *resize-state* (list 0 0))
+
+(defcommand resize-with-state (width height) ((:number "+ Width: ")
+                                             (:number "+ Height: "))
+  (incf (first *resize-state*) width)
+  (incf (second *resize-state*) height)
+  (resize width height))
+
 (defcommand iresize () ()
   (let ((frame (tile-group-current-frame (current-group))))
     (if (atom (tile-group-frame-head (current-group) (frame-head 
(current-group) frame)))
         (message "There's only 1 frame!")
         (progn
+         (setf *resize-state* '(0 0))
           (when *resize-hides-windows*
             (dolist (f (head-frames (current-group) (current-head)))
               (clear-frame f (current-group))))
@@ -100,7 +109,7 @@
 (defcommand abort-iresize () ()
   (resize-unhide)
   (message "Abort resize")
-  ;; TODO: actually revert the frames
+  (apply #'resize-with-state (mapcar #'- *resize-state*))
   (pop-top-map))
 
 (defcommand exit-iresize () ()
-- 
1.5.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]