From: Thierry Volpiatto <thievol@posteo.net>
To: Dmitry Gutov <dmitry@gutov.dev>
Cc: 67882@debbugs.gnu.org
Subject: bug#67882: 29.1.90; Registers' preview can delete existing window when finishing
Date: Mon, 08 Jan 2024 14:36:37 +0000 [thread overview]
Message-ID: <87plyb7uyy.fsf@posteo.net> (raw)
In-Reply-To: <34a9ba4a-a91f-7b3b-9cfd-9d0a56dfcd82@gutov.dev> (Dmitry Gutov's message of "Mon, 18 Dec 2023 20:18:55 +0200")
[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]
Hello Dmitry,
is the attached patch fix this issue for you?
Thanks.
Dmitry Gutov <dmitry@gutov.dev> writes:
> Set up:
>
> (defun split-window-prefer-side-by-side (&optional window)
> (let ((split-height-threshold (and (< (window-width window)
> split-width-threshold)
> split-height-threshold)))
> (split-window-sensibly window)))
>
> (setq split-window-preferred-function 'split-window-prefer-side-by-side)
>
> Split the frame, e.g. 'C-x 3'.
>
> Then create some register (e.g. using 'C-x r C-@') and then invoke
> another command reading it. E.g. 'C-x r j'.
>
> Wait the necessary 1 second for the preview to appear - it will use one
> of the existing windows to show the list of registers.
>
> Then, whether you choose the register, or C-g out of the choice, the
> window used to display the list will be deleted.
>
> Previously mentioned in bug#66394.
>
> Not a regression on master, just reproduced it in 29.
>
>
>
>
--
Thierry
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-window-setting-in-register-preview-bug-67882.patch --]
[-- Type: text/x-diff, Size: 2741 bytes --]
From b39ffa6e1db2577ecf3b265ccdcc50b102ee13b7 Mon Sep 17 00:00:00 2001
From: Thierry Volpiatto <thievol@posteo.net>
Date: Tue, 26 Dec 2023 17:49:34 +0100
Subject: [PATCH 1/2] Fix window setting in register preview (bug#67882)
and allow configuring it if needed.
* lisp/register.el (register-preview-display-buffer-alist): New user
var.
(register-preview,register-preview-1): Use it.
---
lisp/register.el | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/lisp/register.el b/lisp/register.el
index baad2c2a05d..f5b0365dec2 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -386,18 +386,21 @@ Format of each entry is controlled by the variable `register-preview-function'."
(setq register-preview-function (register--preview-function
register--read-with-preview-function)))
(when (or show-empty (consp register-alist))
- (with-current-buffer-window
- buffer
- (cons 'display-buffer-below-selected
- '((window-height . fit-window-to-buffer)
- (preserve-size . (nil . t))))
- nil
- (with-current-buffer standard-output
- (setq cursor-in-non-selected-windows nil)
- (mapc (lambda (elem)
- (when (get-register (car elem))
- (insert (funcall register-preview-function elem))))
- register-alist)))))
+ (with-current-buffer-window buffer
+ register-preview-display-buffer-alist
+ nil
+ (with-current-buffer standard-output
+ (setq cursor-in-non-selected-windows nil)
+ (mapc (lambda (elem)
+ (when (get-register (car elem))
+ (insert (funcall register-preview-function elem))))
+ register-alist)))))
+
+(defcustom register-preview-display-buffer-alist '(display-buffer-at-bottom
+ (window-height . fit-window-to-buffer)
+ (preserve-size . (nil . t)))
+ "Window configuration for the register preview buffer."
+ :type display-buffer--action-custom-type)
(defun register-preview-1 (buffer &optional show-empty types)
"Pop up a window showing the preview of registers in BUFFER.
@@ -415,9 +418,7 @@ Format of each entry is controlled by the variable `register-preview-function'."
(when (or show-empty (consp registers))
(with-current-buffer-window
buffer
- (cons 'display-buffer-below-selected
- '((window-height . fit-window-to-buffer)
- (preserve-size . (nil . t))))
+ register-preview-display-buffer-alist
nil
(with-current-buffer standard-output
(setq cursor-in-non-selected-windows nil)
--
2.34.1
next prev parent reply other threads:[~2024-01-08 14:36 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-18 18:18 bug#67882: 29.1.90; Registers' preview can delete existing window when finishing Dmitry Gutov
2024-01-08 14:36 ` Thierry Volpiatto [this message]
2024-01-10 1:46 ` Dmitry Gutov
2024-01-10 10:08 ` Thierry Volpiatto
2024-01-10 13:26 ` Eli Zaretskii
2024-01-10 16:05 ` Thierry Volpiatto
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=87plyb7uyy.fsf@posteo.net \
--to=thievol@posteo.net \
--cc=67882@debbugs.gnu.org \
--cc=dmitry@gutov.dev \
/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).