From: Po Lu Date: Sun, 30 Jul 2023 13:18:54 +0000 (+0800) Subject: Fix bug#64923 X-Git-Tag: emacs-29.1.90~277^2~3 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7b9e83d3cf92abf1411c1999068839a7e1bb36e8;p=emacs.git Fix bug#64923 * src/xfns.c (Fx_create_frame): Prevent cairo surface from being left without a desired size. (bug#64923) --- 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. */