summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/debug.el
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2012-09-12 17:49:17 +0200
committerMartin Rudalics <rudalics@gmx.at>2012-09-12 17:49:17 +0200
commit4dece104ac5d50f934a13b7a817e27750f328278 (patch)
tree5571958a878bc10492898ab4c4419cc1251de3b9 /lisp/emacs-lisp/debug.el
parent92547ff9d92c77452b6d628a225ecb58b7bb80f9 (diff)
downloademacs-4dece104ac5d50f934a13b7a817e27750f328278.tar.gz
emacs-4dece104ac5d50f934a13b7a817e27750f328278.tar.bz2
emacs-4dece104ac5d50f934a13b7a817e27750f328278.zip
Try to keep height of debugger window consistent. (Bug#8789)
* 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)
Diffstat (limited to 'lisp/emacs-lisp/debug.el')
-rw-r--r--lisp/emacs-lisp/debug.el18
1 files changed, 17 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index bdb35e424d0..8b89e65c5d9 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -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