From f3999f7ebf9dc31de1aea7e2249781521c81132f Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 10 Feb 2022 16:54:32 -0800 Subject: [PATCH] popover: use GtkNative opaque region API This updates GtkPopover to use the new GtkNative abstraction for reporting opaque regions of the window, in hopes that it can speed up compositors for things like animated lists, menu transitions, and more. Fixes #4689 --- gtk/gtkpopover.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 3c16e89312..2f4a33493e 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -957,6 +957,8 @@ gtk_popover_realize (GtkWidget *widget) priv->renderer = gsk_renderer_new_for_surface (priv->surface); gtk_native_realize (GTK_NATIVE (popover)); + + gtk_native_update_opaque_region (GTK_NATIVE (popover), priv->contents_widget, TRUE, TRUE, 0); } static void @@ -1392,6 +1394,9 @@ gtk_popover_update_shape (GtkPopover *popover) gdk_surface_set_input_region (priv->surface, region); cairo_region_destroy (region); } + + if (_gtk_widget_get_realized (GTK_WIDGET (popover))) + gtk_native_update_opaque_region (GTK_NATIVE (popover), priv->contents_widget, TRUE, TRUE, 0); } static int -- 2.30.2