]> git.eshelyaron.com Git - emacs.git/commitdiff
(mouse-drag-move-window-top): New function.
authorDavid Ponce <david@dponce.com>
Mon, 18 Oct 2004 09:29:59 +0000 (09:29 +0000)
committerDavid Ponce <david@dponce.com>
Mon, 18 Oct 2004 09:29:59 +0000 (09:29 +0000)
(mouse-drag-mode-line-1): Use it.

lisp/ChangeLog
lisp/mouse.el

index a3fb778928c59378fb639b7293df062338ba980c..eaa71c4abadfe244931a0e2183248f6b6de83c26 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-18  David Ponce  <david@dponce.com>
+
+       * mouse.el (mouse-drag-move-window-top): New function.
+       (mouse-drag-mode-line-1): Use it.
+
 2004-10-18  Thien-Thi Nguyen  <ttn@gnu.org>
 
        * info.el (Info-fontify-node): For multiline refs,
index 0a6499e5c099e1321629ca6e8f08828630a37fb3..abf62a978362012e6809b97c1a6119fabcdb46b4 100644 (file)
@@ -338,6 +338,17 @@ shrink the window or windows above it to make room."
     (select-window window)
     (enlarge-window growth nil (> growth 0))))
 
+(defsubst mouse-drag-move-window-top (window growth)
+  "Move the top of WINDOW up or down by GROWTH lines.
+Move it down if GROWTH is positive, or up if GROWTH is negative.
+If this would make WINDOW too short, shrink the window or windows
+above it to make room."
+  ;; Moving the top of WINDOW is actually moving the bottom of the
+  ;; window above.
+  (let ((window-above (mouse-drag-window-above window)))
+    (and window-above
+        (mouse-drag-move-window-bottom window-above (- growth)))))
+
 (defun mouse-drag-mode-line-1 (start-event mode-line-p)
   "Change the height of a window by dragging on the mode or header line.
 START-EVENT is the starting mouse-event of the drag action.
@@ -444,7 +455,9 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line."
                       (select-window start-event-window))
                   ;; no.  grow/shrink the selected window
                   ;(message "growth = %d" growth)
-                  (mouse-drag-move-window-bottom start-event-window growth))
+                  (if mode-line-p
+                      (mouse-drag-move-window-bottom start-event-window growth)
+                    (mouse-drag-move-window-top start-event-window growth)))
 
                 ;; if this window's growth caused another
                 ;; window to be deleted because it was too