From 7b9e83d3cf92abf1411c1999068839a7e1bb36e8 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sun, 30 Jul 2023 21:18:54 +0800 Subject: [PATCH] Fix bug#64923 * src/xfns.c (Fx_create_frame): Prevent cairo surface from being left without a desired size. (bug#64923) --- src/xfns.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/xfns.c b/src/xfns.c index 528ae61ca32..d723b1f7d7c 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -5109,6 +5109,17 @@ This function is an internal primitive--use `make-frame' instead. */) gui_default_parameter (f, parms, Qfullscreen, Qnil, "fullscreen", "Fullscreen", RES_TYPE_SYMBOL); +#ifdef USE_CAIRO + /* Set the initial size of the Cairo surface to the frame's current + width and height. If the window manager doesn't resize the new + frame after it's first mapped, Emacs will create a surface with + empty dimensions in response to to the initial exposure event, + which will persist until the next time it's resized. + (bug#64923) */ + x_cr_update_surface_desired_size (f, FRAME_PIXEL_WIDTH (f), + FRAME_PIXEL_HEIGHT (f)); +#endif /* USE_CAIRO */ + /* Make the window appear on the frame and enable display, unless the caller says not to. However, with explicit parent, Emacs cannot control visibility, so don't try. */ -- 2.39.2