[gtk/wip/chergert/macos-iosurface: 47/48] popover: use GtkNative opaque region API




commit 79fefaecccea585368ee042f278c6500bdbe3186
Author: Christian Hergert <chergert redhat com>
Date:   Thu Feb 10 16:54:32 2022 -0800

    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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]