]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug#64923
authorPo Lu <luangruo@yahoo.com>
Sun, 30 Jul 2023 13:18:54 +0000 (21:18 +0800)
committerPo Lu <luangruo@yahoo.com>
Sun, 30 Jul 2023 13:18:54 +0000 (21:18 +0800)
* src/xfns.c (Fx_create_frame): Prevent cairo surface from being
left without a desired size.  (bug#64923)

src/xfns.c

index 528ae61ca3230bb51116c7094a6ee74c0299b5c7..d723b1f7d7cc9b9226e0df7c8e7565ea851ae28e 100644 (file)
@@ -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.  */