@@ -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