]> git.eshelyaron.com Git - emacs.git/commitdiff
Try to keep height of debugger window consistent. (Bug#8789)
authorMartin Rudalics <rudalics@gmx.at>
Wed, 12 Sep 2012 15:49:17 +0000 (17:49 +0200)
committerMartin Rudalics <rudalics@gmx.at>
Wed, 12 Sep 2012 15:49:17 +0000 (17:49 +0200)
* emacs-lisp/debug.el (debugger-previous-window-height): New
variable.
(debug): When debugger-jumping-flag is non-nil try to restore
height of debugger window.  (Bug#8789)

lisp/ChangeLog
lisp/emacs-lisp/debug.el

index f24ccb3aaa66101aa63c67054171ae2cf841fe0c..0345c922a15a6d0cfde917c71e92c3837b1ce226 100644 (file)
@@ -1,3 +1,10 @@
+2012-09-12  Martin Rudalics  <rudalics@gmx.at>
+
+       * emacs-lisp/debug.el (debugger-previous-window-height): New
+       variable.
+       (debug): When debugger-jumping-flag is non-nil try to restore
+       height of debugger window.  (Bug#8789)
+
 2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * emacs-lisp/edebug.el (edebug-enter): Don't mess with
index bdb35e424d09cd10a30b51f7585be624465bf41b..8b89e65c5d9a9dfe44daafeef15650c77c708c59 100644 (file)
@@ -96,6 +96,9 @@ The value used here is passed to `quit-restore-window'."
 (defvar debugger-previous-window nil
   "This is the window last showing the debugger buffer.")
 
+(defvar debugger-previous-window-height nil
+  "The last recorded height of `debugger-previous-window'.")
+
 (defvar debugger-previous-backtrace nil
   "The contents of the previous backtrace (including text properties).
 This is to optimize `debugger-make-xrefs'.")
@@ -234,7 +237,17 @@ first will be printed into the backtrace buffer."
                  . (,(when debugger-previous-window
                        `(previous-window . ,debugger-previous-window)))))
              (setq debugger-window (selected-window))
-             (setq debugger-previous-window debugger-window)
+             (if (eq debugger-previous-window debugger-window)
+                 (when debugger-jumping-flag
+                   ;; Try to restore previous height of debugger
+                   ;; window.
+                   (condition-case nil
+                       (window-resize
+                        debugger-window
+                        (- debugger-previous-window-height
+                           (window-total-size debugger-window)))
+                     (error nil)))
+               (setq debugger-previous-window debugger-window))
              (debugger-mode)
              (debugger-setup-buffer debugger-args)
              (when noninteractive
@@ -262,6 +275,9 @@ first will be printed into the backtrace buffer."
                  (recursive-edit))))
          (when (and (window-live-p debugger-window)
                     (eq (window-buffer debugger-window) debugger-buffer))
+           ;; Record height of debugger window.
+           (setq debugger-previous-window-height
+                 (window-total-size debugger-window))
            ;; Unshow debugger-buffer.
            (quit-restore-window debugger-window debugger-bury-or-kill))
           ;; Restore previous state of debugger-buffer in case we were