Subject: bug#76275: closed (Re: bug#76275: 31.0.50; frame-inhibit-implied-resize broken on recent master)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 23 Feb 2025 10:44:02 +0000

Your bug report

#76275: 31.0.50; frame-inhibit-implied-resize broken on recent master

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
76275: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76275
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#76275: 31.0.50; frame-inhibit-implied-resize broken on recent master
From: Sean Whitton <[email-masked]>
To: martin rudalics <[email-masked]>
Cc: [email-masked], Eli Zaretskii <[email-masked]>, [email-masked]
Date: Sun, 23 Feb 2025 18:43:39 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

On Sun 23 Feb 2025 at 11:05am +01, martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:

>>  > So, are you thinking you'll install the 'force patch?
>
> Installed on master now.

Looks good to me.  Thanks again.  Closing the bug.

-- 
Sean Whitton

Subject: 31.0.50; frame-inhibit-implied-resize broken on recent master
From: Sean Whitton <[email-masked]>
To: [email-masked]
Date: Fri, 14 Feb 2025 11:28:10 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

X-debbugs-cc: [email-masked], [email-masked]

Hello,

By means of Git bisection I have discovered that commit dbf22fd0d05 to
fix bug#74750 has broken frame-inhibit-implied-resize.
Here is a reproducer:

1. Configure the Sway compositor to move and resize new windows that
   open if they have the title "Emacs Sway input":
--8<---------------cut here---------------start------------->8---
for_window [title="^Emacs Sway input$"] \
	floating enable, sticky enable, \
	resize set width 90 ppt, resize set height 90 px, \
	border pixel 2, move position 5 ppt 10 px
--8<---------------cut here---------------end--------------->8---

2. Create sway-completing-read.el:
--8<---------------cut here---------------start------------->8---
(defun spw/scale-default (frame)
  (set-face-attribute 'default frame :height 120))
(add-to-list 'window-size-change-functions #'spw/scale-default)

(defun spw/sway-completing-read (prompt collection &rest optional-args)
  (let* ((frame-inhibit-implied-resize t)
	 (frame (make-frame `((title . "Emacs Sway input")
			      (minibuffer . only)
			      (display . ,(getenv "WAYLAND_DISPLAY"))))))
    (unwind-protect
	(with-selected-frame frame
	  (set-window-scroll-bars (minibuffer-window frame) 0 nil 0 nil t)
	  (apply #'completing-read prompt collection optional-args))
      (delete-frame frame))))
--8<---------------cut here---------------end--------------->8---

3. src/emacs -Q -l sway-completing-read.el --fg-daemon=test

4. lib-src/emacsclient -stest -e '(spw/sway-completing-read "Choose: " (list "one" "two" "three"))'

Result before dbf22fd0d05: New graphical frame of size 90%x90px appears.
Result after dbf22fd0d05: New graphical frame of a different size appears.

I think what happens is that Sway moves and resizes the new frame, but
then Emacs immediately wants to resize it after scaling the font size.
Binding frame-inhibit-implied-resize used to prevent that, but it's now
broken.

Thanks.

-- 
Sean Whitton