GNU bug report logs - #76275
31.0.50; frame-inhibit-implied-resize broken on recent master

Previous Next

Package: emacs;

Reported by: Sean Whitton <spwhitton <at> spwhitton.name>

Date: Fri, 14 Feb 2025 03:29:01 UTC

Severity: normal

Found in version 31.0.50

Done: Sean Whitton <spwhitton <at> spwhitton.name>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Sean Whitton <spwhitton <at> spwhitton.name>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; frame-inhibit-implied-resize broken on recent master
Date: Fri, 14 Feb 2025 11:28:10 +0800
X-debbugs-cc: rudalics <at> gmx.at, shipmints <at> gmail.com

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




This bug report was last modified 91 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.