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

From: Eli Zaretskii <[email-masked]>
Date: Tue, 25 Aug 2015 18:19:16 +0300

> Date: Tue, 25 Aug 2015 10:34:23 +0000
> From: Pip Cet <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
> 
> > Via ‘pre-redisplay-function’?
> 
> Well, we have `pre-redisplay-functions', with an s, defined in
> simple.el

That's a Lisp-level trick, but the variable used by the display engine
is pre-redisplay-function, without an s.

> That's what my code does. I thought I could get away with using the
> arguments passed to pre-redisplay-function to limit which windows to
> check, but that doesn't work when we "goto retry" and re-run
> pre-redisplay-function.

Not sure I understand why it wouldn't work.  Can you elaborate?

The way I see it, the windows passed to pre-redisplay-function are
those that needed redisplay, so if the list is different on the second
call, the rest of the windows were already redisplayed, and your hook
shouldn't care about them, because you already processed them on the
previous call.

> I will study the code in xdisp.c further and see whether I can
> understand what the purpose of must_finish is.

We have "goto retry" in redisplay_internal in more than one place, and
only one of them is conditioned by must_finish.

In general must_finish is true when we must complete the redisplay
cycle by calling update_frame.  But I'm not sure this answers your
question in full.