--- Frame.C.orig	2025-02-21 11:52:53.159953883 +0000
+++ Frame.C	2025-02-21 11:48:34.363290435 +0000
@@ -17,6 +17,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <FL/fl_draw.H>
+#include <cairo/cairo-xlib.h>
 
 #ifndef HAVE_XFT
 #include "Rotated.H" // text rotation code; not supported by non-Xft FLTK 1.3.x
@@ -1347,7 +1348,17 @@
 #endif
 
 // make sure fltk does not try to set the window size:
-void Frame::resize(int, int, int, int) {}
+void Frame::resize(int X, int Y, int W, int H) {
+#if FL_API_VERSION >= 10400
+#  if FLTK_USE_CAIRO
+  if (shown() && fl_cairo_gc()) {
+    cairo_xlib_surface_set_size(cairo_get_target(fl_cairo_gc()),
+      (W>0 ? W : 1), (H>0 ? H : 1));
+    redraw();
+  }
+#  endif
+#endif
+}
 // For fltk2.0:
 void Frame::layout() {
 }
