summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-04-01 23:08:36 -0400
committerMatthias Clasen <mclasen@redhat.com>2023-04-01 23:08:36 -0400
commitafed6f92efe98f4f27ae88df38141acb3a6bba3d (patch)
tree3f22be0b10cbcf2dcaa73099cc2904332399149d
parentb02729a58e3d30d2c3367cbe0c573307cff031f2 (diff)
downloadgtk+-afed6f92efe98f4f27ae88df38141acb3a6bba3d.tar.gz
popover: Stop using gdk_surface_create_similar_surface
Just create the cairo image surface ourselves.
-rw-r--r--gtk/gtkpopover.c12
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);