Subject: Re: bug#16736: Compiling a Lisp file causes display to flash off and on

From: Eli Zaretskii <[email-masked]>
Date: Mon, 17 Feb 2014 20:56:51 +0200

> Date: Mon, 17 Feb 2014 18:58:42 +0100
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
>  > OK, so it sounds like we need to make change_frame_size_1 consistent
>  > with widget.c code.
> 
> IMO the widget.c code is inherently absurd.  EmacsFrameResize processes
> a resize request by calculating a text size from ew->core.height.  Then
> it sets
> 
>    FRAME_PIXEL_HEIGHT (f) = ew->core.height + x->menubar_height;
> 
> and update_from_various_frame_slots inversely processes
> 
>    ew->core.height = FRAME_PIXEL_HEIGHT (f) - x->menubar_height;
> 
> where update_from_various_frame_slots is called only by
> EmacsFrameInitialize.  Does anyone understand what this is good for?

The latter part is not important, I think, because ew->core is not
used anywhere.

So the only important part here is setting FRAME_PIXEL_HEIGHT and
other fields of the frame struct.

widget.c is compiled only for X toolkits, right?  So I think making
update_various_frame_slots consistent with change_frame_size_1 when
USE_X_TOOLKIT will fix the problem.