From: Christian Hergert Date: Fri, 11 Feb 2022 00:54:32 +0000 (-0800) Subject: popover: use GtkNative opaque region API X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~4^2~1^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f3999f7ebf9dc31de1aea7e2249781521c81132f;p=gtk4.git 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 --- 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