Skip to content

Commit 52d44de

Browse files
cosimocraveit65
authored andcommitted
canvas-item: use gtk_render_icon_surface for the DnD surface
So to get HiDpi support. origin commit: https://gitlab.gnome.org/GNOME/nautilus/commit/31059f33
1 parent efb0d54 commit 52d44de

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

libcaja-private/caja-icon-canvas-item.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ caja_icon_canvas_item_get_drag_surface (CajaIconCanvasItem *item)
515515
gboolean is_rtl;
516516
cairo_t *cr;
517517
GtkStyleContext *context;
518+
cairo_surface_t *drag_surface;
518519

519520
g_return_val_if_fail (CAJA_IS_ICON_CANVAS_ITEM (item), NULL);
520521

@@ -540,14 +541,18 @@ caja_icon_canvas_item_get_drag_surface (CajaIconCanvasItem *item)
540541
width = EEL_CANVAS_ITEM (item)->x2 - EEL_CANVAS_ITEM (item)->x1;
541542
height = EEL_CANVAS_ITEM (item)->y2 - EEL_CANVAS_ITEM (item)->y1;
542543

543-
surface = gdk_window_create_similar_surface (gdk_screen_get_root_window (screen),
544+
surface = gdk_window_create_similar_surface (gtk_widget_get_window (GTK_WIDGET (canvas)),
544545
CAIRO_CONTENT_COLOR_ALPHA,
545546
width, height);
546547

547548
cr = cairo_create (surface);
548549

549-
gtk_render_icon (context, cr, item->details->pixbuf,
550-
item_offset_x, item_offset_y);
550+
drag_surface = gdk_cairo_surface_create_from_pixbuf (item->details->pixbuf,
551+
gtk_widget_get_scale_factor (GTK_WIDGET (canvas)),
552+
gtk_widget_get_window (GTK_WIDGET (canvas)));
553+
gtk_render_icon_surface (context, cr, drag_surface,
554+
item_offset_x, item_offset_y);
555+
cairo_surface_destroy (drag_surface);
551556

552557

553558
icon_rect.x0 = item_offset_x;

0 commit comments

Comments
 (0)