GNU bug report logs - #21333
25.0.50; window-size-change-functions not called after mini-window resize

Previous Next

Package: emacs;

Reported by: Pip Cet <pipcet <at> gmail.com>

Date: Sun, 23 Aug 2015 22:07:02 UTC

Severity: normal

Merged with 830, 21869

Found in versions 24.0.90, 25.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: martin rudalics <rudalics <at> gmx.at>
To: Pip Cet <pipcet <at> gmail.com>, 21333 <at> debbugs.gnu.org
Subject: Re: bug#21333: 25.0.50; window-size-change-functions not called after
 mini-window resize
Date: Mon, 24 Aug 2015 10:18:59 +0200
> This is possibly only a documentation issue.
>
> Recipe: eval
> (progn (push (lambda (&rest args) (message "window size changed"))
> window-size-change-functions)
>      (message (make-string 3000 ?*)))
>
> Expected result: a "window size changed" message.
>
> Actual result: no such message.
>
>
> The symptom is that the window size change function is not run after a
> mini-window size change.
>
> So far, I can produce this behavior only when the minibuffer or echo
> area grows to several lines; when it shrinks afterwards, my window size
> change function is called. I cannot reproduce the behavior with other
> windows.
>
> Is this a bug? The documentation says:
>
>      [...] to be called if the size of any window changes for any reason.
>
> Please correct me if I'm wrong, but when the minibuffer/echo area gets
> resized (and the windows on top of it, too), that counts as a change of
> size, I would say.
>
> If this is merely a documentation issue, the exception should be noted
> in the manual.

Looks like bug #830

23.0.60; window-size-change-functions sometimes not called

in action.

> Analysis:
> First, some warnings:
>   - `window_resize_apply' and `Fwindow_resize_apply' (aka
>     `window-resize-apply') are two different functions
>   - `resize-mini-window' and `resize-mini-window-internal' are called
>     only when the mini-window is explicitly resized by a Lisp call of
>     `resize-mini-window'. Implicit resizes as a consequence of having
>     too much text in the echo area do not appear to call it.
>
> The problem is that FRAME_WINDOW_SIZES_CHANGED (f) is not set to true
> after a mini-window resize. Fwindow_resize_apply would set this flag,
> but window_resize_apply does not.
>
> If this behavior is deliberate, I believe it is inconsistent to set
> FRAME_WINDOW_SIZES_CHANGED (f) in `resize-mini-window-internal'.
>
>
> Suggested solution:
>
> Trivial. Add FRAME_WINDOW_SIZES_CHANGED (f) = true to all callers of
> window_resize_apply.

Your patch looks fine to me.  I'd suggest to postpone installing it until
your paperwork is complete.  OK?

Thanks, martin




This bug report was last modified 9 years and 184 days ago.

Previous Next


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