diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-04-01 23:08:36 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-04-01 23:08:36 -0400 |
commit | afed6f92efe98f4f27ae88df38141acb3a6bba3d (patch) | |
tree | 3f22be0b10cbcf2dcaa73099cc2904332399149d | |
parent | b02729a58e3d30d2c3367cbe0c573307cff031f2 (diff) | |
download | gtk+-afed6f92efe98f4f27ae88df38141acb3a6bba3d.tar.gz |
popover: Stop using gdk_surface_create_similar_surface
Just create the cairo image surface ourselves.
-rw-r--r-- | gtk/gtkpopover.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 9b62721fac..cf90a3bd7d 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -1360,15 +1360,17 @@ gtk_popover_update_shape (GtkPopover *popover) cairo_t *cr; graphene_point_t p; double native_x, native_y; + int width, height, scale; gtk_native_get_surface_transform (GTK_NATIVE (popover), &native_x, &native_y); gtk_css_boxes_init (&content_css_boxes, priv->contents_widget); - cairo_surface = - gdk_surface_create_similar_surface (priv->surface, - CAIRO_CONTENT_COLOR_ALPHA, - gdk_surface_get_width (priv->surface), - gdk_surface_get_height (priv->surface)); + width = gdk_surface_get_width (priv->surface); + height = gdk_surface_get_height (priv->surface); + scale = gdk_surface_get_scale_factor (priv->surface); + + cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width * scale, height * scale); + cairo_surface_set_device_scale (cairo_surface, scale, scale); cr = cairo_create (cairo_surface); |