diff options
author | Martin Rudalics <rudalics@gmx.at> | 2012-09-12 17:49:17 +0200 |
---|---|---|
committer | Martin Rudalics <rudalics@gmx.at> | 2012-09-12 17:49:17 +0200 |
commit | 4dece104ac5d50f934a13b7a817e27750f328278 (patch) | |
tree | 5571958a878bc10492898ab4c4419cc1251de3b9 /lisp/emacs-lisp/debug.el | |
parent | 92547ff9d92c77452b6d628a225ecb58b7bb80f9 (diff) | |
download | emacs-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.el | 18 |
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 |