From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: martin rudalics <rudalics@gmx.at>
Cc: michael_heerdegen@web.de, 8789@debbugs.gnu.org
Subject: bug#8789: 23.3; debug backtrace buffer changes window on step-through
Date: Wed, 15 Feb 2012 14:05:17 -0500 [thread overview]
Message-ID: <jwvmx8jc41i.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <4F3BE4CB.3030909@gmx.at> (martin rudalics's message of "Wed, 15 Feb 2012 18:00:59 +0100")
> We could also try `window-prev-buffers' and `window-next-buffers' as in
> the rather untested patch below.
Sounds good for the backtrace buffer, but the patch you propose would
affect many more cases, and while I think it might be good to do it
globally like you suggest, I wouldn't want to make such a change so late
in the pretest.
Can you provide another patch that limits the effect to the
backtrace buffer?
Stefan
> === modified file 'lisp/window.el'
> --- lisp/window.el 2012-02-12 05:10:30 +0000
> +++ lisp/window.el 2012-02-15 16:54:41 +0000
> @@ -4846,6 +4846,39 @@
> (and pop-up-windows
> (display-buffer-pop-up-window buffer alist))))
> +(defun window-previously-showing (buffer &optional all-frames dedicated)
> + "Return a window that previously showed BUFFER.
> +A minibuffer window is never a candidate. A dedicated window is
> +never a candidate unless DEDICATED is non-nil, so if all windows
> +are dedicated, the value is nil. Avoid returning the selected
> +window if possible.
> +
> +The following non-nil values of the optional argument ALL-FRAMES
> +have special meanings:
> +
> +- t means consider all windows on all existing frames.
> +
> +- `visible' means consider all windows on all visible frames on
> + the current terminal.
> +
> +- 0 (the number zero) means consider all windows on all visible
> + and iconified frames on the current terminal.
> +
> +- A frame means consider all windows on that frame only.
> +
> +Any other value of ALL-FRAMES means consider all windows on the
> +selected frame and no others."
> + (let (best-window second-best-window)
> + (dolist (window (window-list-1 nil 'nomini all-frames))
> + (when (and (or (assq buffer (window-prev-buffers window))
> + (assq buffer (window-next-buffers window)))
> + (or dedicated (not (window-dedicated-p window))))
> + (if (eq window (selected-window))
> + (setq second-best-window window)
> + ;; We probably should throw WINDOW here.
> + (setq best-window window))))
> + (or best-window second-best-window)))
> +
> (defun display-buffer-use-some-window (buffer alist)
> "Display BUFFER in an existing window.
> Search for a usable window, set that window to the buffer, and
> @@ -4864,7 +4897,8 @@
> (unwind-protect
> (setq window
> ;; Reuse an existing window.
> - (or (get-lru-window frame)
> + (or (window-previously-showing buffer 'visible)
> + (get-lru-window frame)
> (let ((window (get-buffer-window buffer 'visible)))
> (unless (and not-this-window
> (eq window (selected-window)))
next prev parent reply other threads:[~2012-02-15 19:05 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 [this message]
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
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=jwvmx8jc41i.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=8789@debbugs.gnu.org \
--cc=michael_heerdegen@web.de \
--cc=rudalics@gmx.at \
/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.