Subject: bug#21333: 25.0.50; window-size-change-functions not called after mini-window resize

From: martin rudalics <[email-masked]>
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