From: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Juri Linkov <juri@linkov.net>
Cc: Morgan Smith <Morgan.J.Smith@outlook.com>,
Eli Zaretskii <eliz@gnu.org>,
74246@debbugs.gnu.org, stefankangas@gmail.com
Subject: bug#74246: [PATCH] Reuse display windows in image-dired
Date: Sun, 1 Dec 2024 09:46:18 +0100 [thread overview]
Message-ID: <a36e24d6-91c9-407b-b961-5f0b8683600e@gmx.at> (raw)
In-Reply-To: <87y1108u9k.fsf@mail.linkov.net>
> I agree with the need to set the window parameter always.
> For example, I often use commands that override the default action
> with e.g. windmove-display-up/down, etc. Therefore needed
> to add an advice that remembers the last window in the
> buffer-local variable:
>
> (defvar-local display-buffer-last-window nil)
Let's define it via DEFVAR_PER_BUFFER in buffer.c and have
'window--display-buffer' always set it.
'display-buffer-use-some-window' then could use it either by default or
if it finds a 'some-window' entry whose cdr is nil or t or whatever we
want.
> This uses the buffer-local variable in the original buffer
> because IIUC setting a window parameter like in your patch
> can create such a situation that more than one window
> will have the same window parameter.
Which is no harm per se. But it should be possible to exploit it
somehow.
>> Another question: Would it make sense to have 'image-dired' do
>>
>> (display-buffer buf '(nil ((some-window . mru))))
>>
>> in a first phase before embarking on a more complex solution?
>
> This looks like the best immediate solution.
Morgan, can you try that?
> However, I still like your proposal to use a category instead of lru,
> that could be used here later as well.
With 'image-dired' 'display-buffer-last-window' wouldn't help. But
'image-dired' could define a mode-local variable, say
'image-dired-last-window', and propose that as 'some-window'. We could
make 'some-window-method' accept a live window for that purpose.
> But get-mru-window already prevents selecting the selected window
> by the arg NOT-SELECTED of get-mru-window in display-buffer-use-some-window:
>
> ((eq some-window-method 'mru)
> (get-mru-window nil nil t))
> =
I thought so but was too lazy to countercheck.
martin
prev parent reply other threads:[~2024-12-01 8:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-07 20:19 bug#74246: [PATCH] Reuse display windows in image-dired Morgan Smith
2024-11-09 11:37 ` Eli Zaretskii
2024-11-09 17:36 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-23 12:16 ` Eli Zaretskii
2024-11-28 0:32 ` Morgan Smith
2024-11-28 9:28 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-28 18:27 ` Juri Linkov
2024-11-29 15:53 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-30 18:03 ` Juri Linkov
2024-12-01 8:46 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a36e24d6-91c9-407b-b961-5f0b8683600e@gmx.at \
--to=bug-gnu-emacs@gnu.org \
--cc=74246@debbugs.gnu.org \
--cc=Morgan.J.Smith@outlook.com \
--cc=eliz@gnu.org \
--cc=juri@linkov.net \
--cc=rudalics@gmx.at \
--cc=stefankangas@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).