diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java index b193dd7be6..3e630037af 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java @@ -3834,7 +3834,17 @@ void cairoClipRegion (long cairo) { eventRegion = actualRegion; } +@Override +void snapshotToDraw(long handle, long snapshot) { + if (GTK.GTK4 && handle == fixedHandle) { + // The fixedHandle has nothing to draw itself, so skip drawing on this handle + // and let Display.snapshotDrawProc call gtk_widget_snapshot_child on + // the child widgets + return; + } + super.snapshotToDraw(handle, snapshot); +} @Override void gtk4_draw(long widget, long cairo, Rectangle bounds) {