From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#63455: 30.0.50; display-buffer-in-direction is always resizing Date: Wed, 17 May 2023 19:56:56 +0300 Organization: LINKOV.NET Message-ID: <86jzx6lvxz.fsf@mail.linkov.net> References: <87fs82z7cw.fsf@web.de> <77edb1db-13ad-fa1d-d1fc-7a23f0b6240d@gmx.at> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3558"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) Cc: Michael Heerdegen , 63455@debbugs.gnu.org, dgutov@yandex.ru To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed May 17 19:20:46 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pzKpR-0000kI-Bf for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 17 May 2023 19:20:45 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pzKos-0004xF-VF; Wed, 17 May 2023 13:20:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pzKon-0004vw-2m for bug-gnu-emacs@gnu.org; Wed, 17 May 2023 13:20:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pzKom-0007B3-Nj for bug-gnu-emacs@gnu.org; Wed, 17 May 2023 13:20:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pzKom-0002Rp-FD for bug-gnu-emacs@gnu.org; Wed, 17 May 2023 13:20:04 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 17 May 2023 17:20:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63455 X-GNU-PR-Package: emacs Original-Received: via spool by 63455-submit@debbugs.gnu.org id=B63455.16843440019365 (code B ref 63455); Wed, 17 May 2023 17:20:04 +0000 Original-Received: (at 63455) by debbugs.gnu.org; 17 May 2023 17:20:01 +0000 Original-Received: from localhost ([127.0.0.1]:50875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pzKoi-0002Qz-Dl for submit@debbugs.gnu.org; Wed, 17 May 2023 13:20:00 -0400 Original-Received: from relay7-d.mail.gandi.net ([217.70.183.200]:58411) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pzKoh-0002QP-89 for 63455@debbugs.gnu.org; Wed, 17 May 2023 13:19:59 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by mail.gandi.net (Postfix) with ESMTPSA id 54BF520003; Wed, 17 May 2023 17:19:50 +0000 (UTC) In-Reply-To: <77edb1db-13ad-fa1d-d1fc-7a23f0b6240d@gmx.at> (martin rudalics's message of "Fri, 12 May 2023 09:39:40 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:261873 Archived-At: --=-=-= Content-Type: text/plain > 'temp-buffer-window-show' has a third argument NO-RESIZE and its last > lines are rewritten as > > (with-selected-window window > (run-hooks 'temp-buffer-window-show-hook) > (when (and (not no-resize) temp-buffer-resize-mode) > (resize-temp-buffer-window window))) > ;; Return the window. > window)))) > > Maybe Juri can make heads or tails of this. Does your complete patch look like this? --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=bug_63455.patch diff --git a/lisp/files.el b/lisp/files.el index 148f47cbc97..b3962145e79 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -3772,7 +3772,8 @@ hack-local-variables-confirm ;; Display the buffer and read a choice. (save-window-excursion - (pop-to-buffer buf '(display-buffer--maybe-at-bottom)) + (pop-to-buffer buf '(display-buffer--maybe-at-bottom + (window-height . fit-window-to-buffer))) (let* ((exit-chars '(?y ?n ?\s)) (prompt (format "Please type %s%s: " (if offer-save diff --git a/lisp/help.el b/lisp/help.el index 6f55136049b..676c18f2411 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -2175,7 +2175,8 @@ help--window-setup (setq-local help-mode--current-data nil) (buffer-disable-undo) (let ((inhibit-read-only t) - (inhibit-modification-hooks t)) + (inhibit-modification-hooks t) + window) (erase-buffer) (delete-all-overlays) (prog1 @@ -2186,7 +2187,12 @@ help--window-setup (help-make-xrefs (current-buffer)) ;; This must be done after the buffer has been completely ;; generated, since `temp-buffer-resize-mode' may be enabled. - (help-window-setup (temp-buffer-window-show (current-buffer))))))) + (help-window-setup + (setq window (temp-buffer-window-show (current-buffer) nil t))) + (help-make-xrefs (current-buffer)) + (when (and window temp-buffer-resize-mode) + (let (resize-temp-buffer-window-inhibit) + (resize-temp-buffer-window window))))))) ;; Called from C, on encountering `help-char' when reading a char. ;; Don't print to *Help*; that would clobber Help history. diff --git a/lisp/window.el b/lisp/window.el index aa7520f30fa..b816d10298a 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -110,7 +110,7 @@ temp-buffer-window-setup ;; Defined in help.el. (defvar resize-temp-buffer-window-inhibit) -(defun temp-buffer-window-show (buffer &optional action) +(defun temp-buffer-window-show (buffer &optional action no-resize) "Show temporary buffer BUFFER in a window. Return the window showing BUFFER. Pass ACTION as action argument to `display-buffer'." @@ -139,7 +139,7 @@ temp-buffer-window-show (set-window-hscroll window 0) (with-selected-window window (run-hooks 'temp-buffer-window-show-hook) - (when temp-buffer-resize-mode + (when (and (not no-resize) temp-buffer-resize-mode) (resize-temp-buffer-window window))) ;; Return the window. window)))) @@ -8300,14 +8305,6 @@ display-buffer-in-direction (t (setq direction 'below))) - (setq alist - (append alist - `(,(if temp-buffer-resize-mode - '(window-height . resize-temp-buffer-window) - '(window-height . fit-window-to-buffer)) - ,(when temp-buffer-resize-mode - '(preserve-size . (nil . t)))))) - (setq windows (windows-sharing-edge window direction within)) (dolist (other windows) (cond @@ -8384,15 +8381,10 @@ display-buffer-below-selected (window--display-buffer buffer window 'reuse alist))))) (defun display-buffer--maybe-at-bottom (buffer alist) - (let ((alist (append alist `(,(if temp-buffer-resize-mode - '(window-height . resize-temp-buffer-window) - '(window-height . fit-window-to-buffer)) - ,(when temp-buffer-resize-mode - '(preserve-size . (nil . t))))))) - (or (display-buffer--maybe-same-window buffer alist) + (or (display-buffer--maybe-same-window buffer alist) (display-buffer-reuse-window buffer alist) (display-buffer--maybe-pop-up-frame buffer alist) - (display-buffer-at-bottom buffer alist)))) + (display-buffer-at-bottom buffer alist))) ;; This should be rewritten as ;; (display-buffer-in-direction buffer (cons '(direction . bottom) alist)) diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index eb903f093f9..c6ce1b78e52 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el @@ -433,7 +433,8 @@ ediff-setup-windows-plain-compare (select-window (display-buffer-in-direction control-buffer - '((direction . bottom)))) + '((direction . bottom) + (window-height . fit-window-to-buffer)))) (ediff-setup-control-buffer control-buffer) )) --=-=-=--