all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Thierry Volpiatto <thievol@posteo.net>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: michael_heerdegen@web.de, dmitry@gutov.dev,
	Eli Zaretskii <eliz@gnu.org>,
	Stefan Kangas <stefankangas@gmail.com>,
	66394@debbugs.gnu.org
Subject: bug#66394: 29.1; Make register-read-with-preview more useful
Date: Mon, 18 Dec 2023 05:15:09 +0000	[thread overview]
Message-ID: <87h6kghz1e.fsf@posteo.net> (raw)
In-Reply-To: <jwv34w0e807.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Sun, 17 Dec 2023 18:20:56 -0500 (5 hours, 33 minutes, 34 seconds ago)")

[-- Attachment #1: Type: text/plain, Size: 2887 bytes --]

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> From 6a15a8b7b795b8377ef3537dc7bbd5ba26c0e159 Mon Sep 17 00:00:00 2001
>> From: Thierry Volpiatto <thievol@posteo.net>
>> Date: Thu, 14 Dec 2023 16:23:26 +0100
>> Subject: [PATCH 3/4] Save and restore win confs after register commands
>>
>> When several windows are open, the register preview may eat other
>> windows and break the current window configuration.
>>
>> * lisp/register.el (register-read-with-preview-fancy): Do it.
>> ---
>>  lisp/register.el | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/lisp/register.el b/lisp/register.el
>> index 8f0c6a7105d..1fadbe81056 100644
>> --- a/lisp/register.el
>> +++ b/lisp/register.el
>> @@ -473,6 +473,7 @@ display such a window regardless."
>>           (buffer1 "*Register quick preview*")
>>           (buf (if register-use-preview buffer buffer1))
>>           (pat "")
>> +         (winconf (current-window-configuration))
>>           (map (let ((m (make-sparse-keymap)))
>>                  (set-keymap-parent m minibuffer-local-map)
>>                  m))
>> @@ -573,6 +574,7 @@ display such a window regardless."
>>                        nil "No register specified")
>>             (string-to-char result))
>>        (when timer (cancel-timer timer))
>> +      (set-window-configuration winconf)
>>        (let ((w (get-buffer-window buf)))
>>          (and (window-live-p w) (delete-window w)))
>>        (and (get-buffer buf) (kill-buffer buf)))))
>
> While save&restore of window configuration often works well, it
> misbehaves in various cases (such as when the buffer is displayed in
> another frame, which case case `set-window-configuration` will do you
> no good).

Yes, I thought this would be enough, but no, there is as well another
problem in register-preview and register-preview-1 with this code which
is as well not working well if there is multiple windows.

      (with-current-buffer-window
        buffer
        (cons 'display-buffer-below-selected
	      '((window-height . fit-window-to-buffer)
	        (preserve-size . (nil . t))))

[...]

At least it should use display-buffer-at-bottom, but I guess the best
would be to make this configurable in one way or the other.

>
> The official way to undo a `display-buffer` is with
> `quit-(restore-)window`.  See (info "(elisp)Quitting Windows").

Yes, this is not what the current code is using, see the last unwind
form of register-read-with-preview-basic/fancy.

But as Dmitri said, it is not bugs introduced by these patches, I
thought it would be simple to fix while we were at it but no.  I guess I
will follow Dmitri advice and not fix this in this serie of patches.
Perhaps we could make another bug report once these patches are applied
(I will remove the patch doing save/restore win conf) ?
 
-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

  reply	other threads:[~2023-12-18  5:15 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-07 19:03 bug#66394: 29.1; Make register-read-with-preview more useful Thierry Volpiatto
2023-10-08  6:45 ` bug#66394: [RE] " Thierry Volpiatto
2023-10-12  6:43 ` Thierry Volpiatto
2023-10-14  2:04   ` Richard Stallman
2023-10-14  5:59     ` Thierry Volpiatto
2023-10-16  2:04       ` Richard Stallman
2023-10-15  7:56     ` Thierry Volpiatto
2023-10-15  8:18       ` Stefan Kangas
2023-10-15 10:05         ` Thierry Volpiatto
2023-10-15 12:55           ` Stefan Kangas
2023-11-18 18:39             ` Thierry Volpiatto
2023-10-19  2:42 ` bug#66394: 29.1; " Michael Heerdegen
2023-10-19  6:16   ` Thierry Volpiatto
2023-10-20  5:00     ` Michael Heerdegen
2023-10-20  5:49       ` Thierry Volpiatto
2023-10-21  1:09         ` Michael Heerdegen
2023-10-21  3:34           ` Thierry Volpiatto
2023-10-23  4:09             ` Michael Heerdegen
2023-10-23  5:14               ` Thierry Volpiatto
2023-10-24  3:42                 ` Michael Heerdegen
2023-10-24  3:54                   ` Michael Heerdegen
2023-10-24  5:30                   ` Thierry Volpiatto
2023-10-25  3:54                     ` Michael Heerdegen
2023-10-24  7:19               ` Thierry Volpiatto
2023-10-25  4:10                 ` Michael Heerdegen
2023-10-25  6:38                   ` Thierry Volpiatto
2023-10-26  4:18                     ` Michael Heerdegen
2023-10-26  6:17                       ` Thierry Volpiatto
2023-10-27  1:27                         ` Michael Heerdegen
2023-10-27  4:24                           ` Thierry Volpiatto
2023-11-03  4:58                             ` Michael Heerdegen
2023-11-19 19:37                               ` Thierry Volpiatto
2023-11-20  6:00                               ` Thierry Volpiatto
2023-11-20 17:33                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-20 18:51                                   ` Thierry Volpiatto
2023-11-25 10:23                                     ` Eli Zaretskii
2023-11-25 19:59                                       ` Thierry Volpiatto
2023-11-25 20:10                                         ` Eli Zaretskii
2023-11-25 21:14                                           ` Thierry Volpiatto
2023-11-26 10:38                                             ` Eli Zaretskii
2023-11-26 16:46                                               ` Thierry Volpiatto
2023-11-29 14:04                                             ` Eli Zaretskii
2023-11-29 18:18                                               ` Thierry Volpiatto
2023-11-30  6:00                                                 ` Eli Zaretskii
2023-11-30 10:21                                                   ` Thierry Volpiatto
2023-12-02  5:51                                                   ` Thierry Volpiatto
2023-12-02  7:50                                                     ` Eli Zaretskii
2023-12-02  8:08                                                       ` Thierry Volpiatto
2023-12-03 14:35                                                       ` Thierry Volpiatto
2023-12-03 15:05                                                         ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-03 16:48                                                           ` Thierry Volpiatto
2023-12-03 18:29                                                             ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-03 18:39                                                               ` Eli Zaretskii
2023-12-03 21:23                                                                 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-04  7:30                                                                   ` Thierry Volpiatto
2023-12-04  7:57                                                                     ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-11  6:55                                                                 ` Thierry Volpiatto
2023-12-11  9:30                                                       ` Thierry Volpiatto
2023-12-11  9:58                                                         ` Thierry Volpiatto
2023-12-11 12:30                                                         ` Eli Zaretskii
2023-12-11 13:10                                                           ` Thierry Volpiatto
2023-12-11 17:32                                                             ` Thierry Volpiatto
2023-12-11 23:36                                                               ` Dmitry Gutov
2023-12-12  6:29                                                                 ` Thierry Volpiatto
2023-12-12  9:31                                                                   ` Thierry Volpiatto
2023-12-12 10:16                                                                     ` Thierry Volpiatto
2023-12-12 16:44                                                                       ` Thierry Volpiatto
2023-12-14  1:46                                                                       ` Dmitry Gutov
2023-12-14  5:34                                                                         ` Thierry Volpiatto
2023-12-14  7:38                                                                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14  8:24                                                                             ` Eli Zaretskii
2023-12-14  7:44                                                                           ` Eli Zaretskii
2023-12-14 15:50                                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-14 17:58                                                                               ` Thierry Volpiatto
2023-12-14 19:19                                                                                 ` Andreas Schwab
2023-12-14 20:29                                                                               ` Stefan Kangas
2023-12-15 14:45                                                                                 ` Thierry Volpiatto
2023-12-15 15:18                                                                                   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-15 18:36                                                                                     ` Thierry Volpiatto
2023-12-15 23:30                                                                                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-16 13:18                                                                                         ` Thierry Volpiatto
2023-12-16 15:31                                                                                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-16 20:39                                                                                             ` Thierry Volpiatto
2023-12-17 23:20                                                                                               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-18  5:15                                                                                                 ` Thierry Volpiatto [this message]
2023-12-18 13:20                                                                                                   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-18 18:11                                                                                                     ` Thierry Volpiatto
2023-12-18 18:22                                                                                                     ` Dmitry Gutov
2023-12-18  6:18                                                                                                 ` Thierry Volpiatto
2023-12-19 17:40                                                                                             ` Thierry Volpiatto
2023-12-19 17:47                                                                                               ` Thierry Volpiatto
2023-12-20 12:05                                                                                               ` Eli Zaretskii
2023-12-20 17:23                                                                                                 ` Thierry Volpiatto
2023-12-21 11:47                                                                                                   ` Eli Zaretskii
2023-12-21 18:04                                                                                                     ` Thierry Volpiatto
2023-12-23 10:49                                                                                                       ` Eli Zaretskii
2023-12-16 15:07                                                                                   ` Dmitry Gutov
2023-12-16 20:20                                                                                     ` Thierry Volpiatto
2023-12-16 23:28                                                                                       ` Dmitry Gutov
2023-12-14  2:10                                                                     ` Dmitry Gutov
2023-12-14  5:30                                                                       ` Thierry Volpiatto
2023-12-14 19:39                                                                   ` Stefan Kangas
2023-12-12  6:06                                                         ` Alfred M. Szmidt
2023-12-12  9:37                                                         ` Steve Perry via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-12 12:15                                                           ` Eli Zaretskii
2023-12-12 17:58                                                             ` Steve Perry via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-11-25 21:38                                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-02  9:24                                 ` Bastien
2023-12-02  9:52                                   ` Thierry Volpiatto
2023-12-02 10:37                                     ` Bastien Guerry
2023-12-02 10:54                                       ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-02 11:55                                       ` Thierry Volpiatto
2023-12-02 12:43                                         ` Thierry Volpiatto
2023-12-02 13:02                                           ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-02 13:50                                           ` Bastien Guerry
2023-12-02 15:01                                             ` Thierry Volpiatto
2023-12-05  7:34 ` Tino Calancha
2023-12-05  7:38 ` Tino Calancha
2023-12-05  7:43 ` Tino Calancha
2023-12-12  5:46 ` Pedro Andres Aranda Gutierrez
2023-12-12 12:01   ` Eli Zaretskii

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=87h6kghz1e.fsf@posteo.net \
    --to=thievol@posteo.net \
    --cc=66394@debbugs.gnu.org \
    --cc=dmitry@gutov.dev \
    --cc=eliz@gnu.org \
    --cc=michael_heerdegen@web.de \
    --cc=monnier@iro.umontreal.ca \
    --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 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.