bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: martin rudalics
Subject: 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]