From: martin rudalics <rudalics@gmx.at>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: 67249@debbugs.gnu.org
Subject: bug#67249: 30.0.50; `same-frame` equivalent for `display-buffer-alist`
Date: Sun, 19 Nov 2023 11:35:06 +0100 [thread overview]
Message-ID: <cbc6a073-2718-7809-c85e-cf338341c712@gmx.at> (raw)
In-Reply-To: <jwv1qcmfm22.fsf-monnier+emacs@gnu.org>
>>> As `special-display-buffer-names` and friends are nearing the 10 years
>>> of being declared obsolete, I noticed that I can't find any replacement
>>> for the `same-frame` parameter in `display-buffer-alist`.
>> IIRC 'same-frame' had no clear semantics.
>
> In `special-display-*`?
All 'same-frame' did was to inhibit calling 'special-display-function'
via
(let* ((pop-up-frames nil) (pop-up-windows t)
special-display-regexps special-display-buffer-names
(window (display-buffer buffer)))
That never precluded using a window on another frame, contradicting the
very meaning of "same frame" and was always documented as
"Otherwise, if they include (same-frame . t), the buffer is displayed
in a new window in the currently selected frame."
which failed to say what happens if no new window could be created on
the selected frame. So historically 'same-frame' was always tied to
'special-display-*' and had no effect when that was uncustomized.
> Are you referring to whether it's OK to (re)use a window on another
> frame if it shows the buffer already?
(Re)use any window on another frame.
> Other than this, I don't see what was not clear about its semantics.
> And I can't see any reason why we couldn't clarify the semantics.
The action alist is flat - whichever entry comes first is used even if
it is not pertinent to the action chosen. If the action chosen is say
'display-buffer-in-previous-window', the frames to investigate are
currently specified by a 'reusable-frames' entry. If no such entry is
present, we could check for a 'same-frame' entry. But what should
'display-buffer' do when both entries are present with 'same-frame'
coming first? And how would 'display-buffer-use-some-window' and
'display-buffer-use-least-recent-window' handle the similar case with a
'lru-frames' and a 'same-frame' entry both present?
Now if you want 'same-frame' to prevail in either of these cases, it
will not suffice to rewrite the corresponding pieces of code where
another frame would be chosen. Any application that really needs a
window on another frame will then have to provide a (same-frame . nil)
entry.
If you want 'same-frame' to not prevail in these cases, you probably
mean that it should only inhibit popping up a new frame via
'display-buffer-pop-up-frame'. Again applications that want to pop up a
new frame would then have to provide a (same-frame . nil) entry.
>> As for a new window on the selected frame, use
>> 'display-buffer-pop-up-window'. As for any other window on the
>> selected frame, use either ‘display-buffer-use-some-window’ or
>> ‘display-buffer-use-least-recent-window’ with a nil 'lru-frames'
>> action alist entry.
>
> `same-frame` was not quite like any of those, it said "keep using the
> default set of options in the same order of preferences, except that if
> at all possible, skip those options which end up displaying the buffer
> in another frame".
The proof of this pudding is in clarifying the "if at all possible" and
explaining any new special behavior in the manual.
martin
next prev parent reply other threads:[~2023-11-19 10:35 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-17 21:41 bug#67249: 30.0.50; `same-frame` equivalent for `display-buffer-alist` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-18 8:36 ` martin rudalics
2023-11-19 3:52 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-19 10:35 ` martin rudalics [this message]
2023-11-19 14:57 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-20 9:15 ` martin rudalics
2023-11-20 13:33 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-21 17:14 ` martin rudalics
2023-11-21 19:09 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-22 8:02 ` martin rudalics
2023-11-22 16:03 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-23 9:59 ` martin rudalics
2023-11-24 2:52 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-24 9:05 ` martin rudalics
2023-11-24 13:51 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-24 16:25 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-25 9:00 ` martin rudalics
2023-11-25 14:36 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-03 19:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-04 7:23 ` martin rudalics
2023-12-09 22:29 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-09 22:40 ` Drew Adams
2023-12-09 22:52 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-09 23:17 ` Drew Adams
2023-12-10 6:00 ` Eli Zaretskii
2023-12-10 16:28 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-10 21:46 ` Drew Adams
2023-12-10 5:53 ` Eli Zaretskii
2023-12-10 17:16 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-11 17:13 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-11 22:14 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-16 18:16 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-25 9:00 ` martin rudalics
2023-11-25 14:37 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
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=cbc6a073-2718-7809-c85e-cf338341c712@gmx.at \
--to=rudalics@gmx.at \
--cc=67249@debbugs.gnu.org \
--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.