Subject: RE: bug#16923: 24.3.50; reression: `set-frame-size' loses mode line

From: Drew Adams <[email-masked]>
Date: Sat, 8 Mar 2014 11:12:05 -0800 (PST)

> I see 42 calls of `window--dump-frame' which from what you say above
> means that for every `fit-frame' there are 6 calls of
> `window--dump-frame'.  Does that mean there are 6 `set-frame-size'
> requests per each `fit-frame' call?

No, it does not.  You asked me to invoke `window--dump-frame' multiple
times before and after each invocation of `fit-frame'.  I figured 3
times would be enough to satisfy that (so 6 times per `fit-frame').
Did I misunderstand the request?

> Note: I'm not interested in `fit-frame' or how you calculate frame
> sizes.  I'm only interested in your calls of `set-frame-size' or
> whatever you use to resize your frame.  How many such calls are there in
> throw-emacs-bug-16923?  And how can I attribute any of these calls to a
> frame without a mode line?

There is one `set-frame-size' per `fit-frame' call.  So seven calls
to `set-frame-size'.

I don't recall exactly, and I see that I did not mention it in my
report with `throw-emacs-bug-16923' (though I mentioned all of the rest
of this), just how many of the seven `fit-frame' invocations resulted
in loss of the mode line.  I believe that only the last invocation
lost the mode line, but I am not sure to remember correctly.

IIRC, I believed that I stopped as soon as I got one mode line
disappearance, but I couldn't swear that that is the case.  I should
have noted that in my report.

>  > You say that you "assume that Emacs sent so many resize requests in
>  > a row that it was able to confuse Windows".  What do you mean to draw
>  > attention to here: the number of requests in a row
> 
> The number.
> 
>  > or the rapidity or
>  > frequency of resize requests?  What constitutes a "row", i.e., until
>  > interrupted by what?
> 
> By redisplay.

Doesn't redisplay occur if the Info node changes?  At any rate, as I
said, I just hit `s RET' repeatedly to search for the same string.
Sometimes that string was found more than once in the same node,
sometimes not.

>  > Based on what I say above, I do not see how it could be that either
>  > a high cadence or a high number of successive `fit-frame' calls could
>  > be overwhelming redisplay.  But I am entirely ignorant about redisplay,
>  > and I am not very clear about what you are asking here.
> 
> The problem is not in redisplay.  The problem is the number of resize
> requests sent in succession to the window manager before redisplay
> occurs.  On Windows this is the number of calls of AdjustWindowRect
> which corresponds to the number of calls of `set-frame-size'.  Redisplay
> should occur only after Emacs has negotiated with Windows for each of
> these calls.
> 
> Anyway.  Beginning with the fourth "------------" on line 271 of
> throw-emacs-bug-16923 the height difference of window and client
> rectangle is 56 and not 80 as before.  Unless we can resolve that
> mystery it hardly make sense to experiment any further.

OK.  Let me know if you want me to try something else.