From: martin rudalics <rudalics@gmx.at>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: michael_heerdegen@web.de, 8789@debbugs.gnu.org
Subject: bug#8789: 23.3; debug backtrace buffer changes window on step-through
Date: Sun, 11 Mar 2012 19:14:43 +0100 [thread overview]
Message-ID: <4F5CEB93.7030609@gmx.at> (raw)
In-Reply-To: <4F3BE4CB.3030909@gmx.at>
[-- Attachment #1: Type: text/plain, Size: 462 bytes --]
> > The general approach sounds good, but we should probably try to refine
> > it so as to minimize changes in behavior, and so it works right in the
> > multi-frame and even multi-terminal case.
> >
> > We could try to store the last-used-window in a variable
> > `debugger-last-used-window' and use that window after checking that it's
> > still live and is visible in the selected terminal.
OK. Attached find my last ;-) stab at this.
martin
[-- Attachment #2: debug.el.diff --]
[-- Type: text/plain, Size: 1785 bytes --]
=== modified file 'lisp/emacs-lisp/debug.el'
--- lisp/emacs-lisp/debug.el 2012-01-19 07:21:25 +0000
+++ lisp/emacs-lisp/debug.el 2012-03-11 18:00:23 +0000
@@ -108,6 +108,25 @@
- exit: called because of exit of a flagged function.
- error: called because of `debug-on-error'.")
+(defvar debugger-buffer-last-window nil
+ "If non-nil, the last window displaying `debugger-buffer'")
+
+;; An appropriate substitute for this should be implemented in
+;; window.el.
+(defun debugger-buffer-use-last-window (buffer alist)
+ "Try displaying debugger buffer in last window where it was seen."
+ ;; Reuse only a window on the selected frame, excluding the selected
+ ;; and dedicated windows.
+ (when (and (window-live-p debugger-buffer-last-window)
+ (not (eq debugger-buffer-last-window (selected-window)))
+ (not (window-dedicated-p debugger-buffer-last-window))
+ (eq (window-frame debugger-buffer-last-window)
+ (selected-frame)))
+ (display-buffer-record-window
+ 'reuse debugger-buffer-last-window buffer)
+ (window--display-buffer-2
+ buffer debugger-buffer-last-window display-buffer-mark-dedicated)))
+
;;;###autoload
(setq debugger 'debug)
;;;###autoload
@@ -194,7 +213,15 @@
;; Place an extra debug-on-exit for macro's.
(when (eq 'lambda (car-safe (cadr (backtrace-frame 4))))
(backtrace-debug 5 t)))
- (pop-to-buffer debugger-buffer)
+
+ (pop-to-buffer
+ debugger-buffer
+ '((display-buffer-reuse-window
+ ;; Try reusing the last window where debugger-buffer
+ ;; was seen (Bug#8789).
+ debugger-buffer-use-last-window) . nil))
+ (setq debugger-buffer-last-window (selected-window))
+
(debugger-mode)
(debugger-setup-buffer debugger-args)
(when noninteractive
next prev parent reply other threads:[~2012-03-11 18:14 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-02 17:07 bug#8789: 23.3; debug backtrace buffer changes window on step-through Pete Beardmore
2011-06-02 18:00 ` Drew Adams
2011-06-03 13:19 ` martin rudalics
2011-06-08 15:29 ` Stefan Monnier
2012-02-09 5:31 ` Michael Heerdegen
2012-02-09 18:21 ` Stefan Monnier
2012-02-11 0:04 ` Michael Heerdegen
2012-02-15 17:00 ` martin rudalics
2012-02-15 19:05 ` Stefan Monnier
2012-02-16 8:03 ` martin rudalics
2012-02-16 13:52 ` Stefan Monnier
2012-02-16 17:50 ` martin rudalics
2012-02-16 21:53 ` Michael Heerdegen
2012-02-17 9:58 ` martin rudalics
2012-02-24 18:42 ` martin rudalics
2012-02-28 23:56 ` Michael Heerdegen
2012-02-29 8:47 ` martin rudalics
2012-03-03 19:48 ` Michael Heerdegen
2012-09-08 13:33 ` martin rudalics
2012-09-12 14:20 ` Michael Heerdegen
2012-09-12 15:50 ` martin rudalics
2012-10-19 7:53 ` Michael Heerdegen
2012-10-19 10:02 ` martin rudalics
2012-09-17 20:34 ` Drew Adams
2012-09-17 22:30 ` martin rudalics
2012-09-17 22:46 ` Drew Adams
2012-09-18 7:10 ` martin rudalics
2012-09-18 14:28 ` Drew Adams
2012-09-19 16:46 ` Drew Adams
2012-09-19 17:10 ` martin rudalics
2012-09-19 17:48 ` Drew Adams
2012-09-19 20:39 ` Drew Adams
2012-09-19 20:55 ` Drew Adams
2012-09-20 13:50 ` martin rudalics
2012-09-20 18:22 ` Drew Adams
2012-09-20 13:50 ` martin rudalics
2012-09-20 17:10 ` Michael Heerdegen
2012-09-20 17:26 ` martin rudalics
2012-09-20 18:08 ` Drew Adams
2012-09-20 18:30 ` Eli Zaretskii
2012-09-20 18:49 ` Drew Adams
2012-09-20 20:41 ` Eli Zaretskii
2012-09-20 20:59 ` Drew Adams
2012-09-20 22:15 ` Stefan Monnier
2012-09-20 20:17 ` Michael Heerdegen
2012-09-20 20:34 ` Drew Adams
2012-09-20 20:52 ` Eli Zaretskii
2012-09-20 21:11 ` Drew Adams
2012-09-20 21:25 ` Michael Heerdegen
2012-09-20 21:33 ` Drew Adams
2012-09-20 22:01 ` Michael Heerdegen
2012-09-20 23:16 ` Drew Adams
2012-09-19 17:17 ` Drew Adams
2012-10-03 9:13 ` martin rudalics
2012-10-03 16:09 ` Drew Adams
2012-03-11 18:14 ` martin rudalics [this message]
2012-02-09 18:24 ` martin rudalics
2012-02-11 0:00 ` Michael Heerdegen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F5CEB93.7030609@gmx.at \
--to=rudalics@gmx.at \
--cc=8789@debbugs.gnu.org \
--cc=michael_heerdegen@web.de \
--cc=monnier@IRO.UMontreal.CA \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.