Subject: bug#19972: Font size change doesn't update (window-total-width)

From: Eli Zaretskii <[email-masked]>
Date: Tue, 03 Mar 2015 20:02:05 +0200

> Date: Tue, 03 Mar 2015 18:47:21 +0100
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
>  > But I don't see anything like that on MS-Windows: we do have a call to
>  > change_frame_size when we receive a WM_SIZE message, but running the
>  > recipe in this thread doesn't cause WM_SIZE to be received,
> 
> There should be one for a normally sized frame.

We don't do anything with it, probably because the frame was already
resized.

>  > Martin, can you tell what is the equivalent of the above X processing
>  > on MS-Windows?  Does Emacs implement a similar logic internally?
> 
> I'm not sure I understand what you mean.  Basically, on Windows we
> process the sizes immediately when issuing a size request.  "Process" in
> this context means to store the sizes in the frame structure and resize
> the frame's windows accordingly.
> 
> We do that in the change_frame_size call on line 6173 of w32term.c
> (because Drew wanted to see the possible future effect immediately in
> the frame sizes).  When Windows gets back to us via a WM_SIZE message we
> might eventually call change_frame_size too (on line 5180 of w32term.c)
> but do so only if the requested sizes differ from the already stored
> ones.  The sizes usually differ when the request was initiated by
> Windows (like when the user clicks at the maximize button or mouse-drags
> a frame edge) and usually do not differ when the request was initiated
> by Lisp code before.

IOW, we don't wait with a resize until we get a notification, but
instead resize the frame itself, and then might resize again when we
receive WM_SIZE.  Question: why not wait for WM_SIZE, and only resize
after it arrives?  That would emulate better what X does, and also
prevent the second resize.  No?

> When I asked you back then whether we could implement something similar
> to the X code on Windows you told me that Windows doesn't have anything
> comparable to ConfigureNotify so I didn't pursue the idea any further.

I don't remember saying that (and don't know X well enough to make
such assertions to begin with), but in any case, you just explained
that I was wrong, and there is a Windows message equivalent to
ConfigureNotify.