Subject: bug#38497: 27.0.50; Frame is not rendered when frame-resize-pixelwise it 't

From: Ihor Radchenko <[email-masked]>
Date: Tue, 17 Dec 2019 08:39:28 +0800

>> Could you try the patch below?

Even though redrawing started working with the patch following my
previous recipe, I observe another redrawing issue with this patch. I
haven't tracked the exact recipe yet, but it seems to occur when emacs
frame is created in floating layout (maybe because it is not resized
after creation in this case, unlike tiling layout).

Ihor Radchenko <[email-masked]> writes:

>> Could you try the patch below?
>
> Redrawing started working with this patch. Thank you!
>
> Best regards,
> Ihor
>
>
> [email-masked] writes:
>
>>>> With 'frame-resize-pixelwise' non-nil?
>>>
>>> No, frame-resize-pixelwise had its default value (nil).
>>>
>>> To avoid confusion, let me recall what I did to reproduce the redrawing
>>> issue:
>>>
>>> 1. Compile emacs with xft cairo and lucid
>>> 2. emacs -Q (frame-resize-pixelwise is nil by default)
>>> 3. Maximise emacs frame (without this, there is an artefact in the title
>>>    bar, but emacs frame itself is redrawing)
>>> 4. M-x menu-bar-mode
>>
>> Could you try the patch below?
>>
>> 				     YAMAMOTO Mitsuharu
>> 				[email-masked]
>>
>> diff --git a/src/xterm.c b/src/xterm.c
>> index 55e5cb76f2..3d6f59c48c 100644
>> --- a/src/xterm.c
>> +++ b/src/xterm.c
>> @@ -8931,8 +8931,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
>>          font_drop_xrender_surfaces (f);
>>        unblock_input ();
>>  #if defined USE_CAIRO && !defined USE_GTK
>> -      if (f)
>> -	x_cr_update_surface_desired_size (f, configureEvent.xconfigure.width,
>> +      if (any && configureEvent.xconfigure.window == FRAME_X_WINDOW (any))
>> +	x_cr_update_surface_desired_size (any,
>> +					  configureEvent.xconfigure.width,
>>  					  configureEvent.xconfigure.height);
>>  #endif
>>  #ifdef USE_GTK
>>
>>
>