summaryrefslogtreecommitdiff
path: root/src/file-manager
diff options
context:
space:
mode:
authorCosimo Cecchi <[email protected]>2013-08-05 03:54:18 +0200
committerlukefromdc <[email protected]>2018-04-04 21:53:21 -0400
commite28ff9cf17d8d72393ace9d68f9864ccbbc28e02 (patch)
treed215df229f2fafca04d0d755639c0848db93b25b /src/file-manager
parentef78aa3fe9043d256f269b4aa25234e42b9eecae (diff)
downloadcaja-e28ff9cf17d8d72393ace9d68f9864ccbbc28e02.tar.bz2
caja-e28ff9cf17d8d72393ace9d68f9864ccbbc28e02.tar.xz
list-view: use the cairo surface as a drag icon
As we now store surfaces in the GtkListStore, we have to change the drag method to use it instead of a pixbuf. origin commit: https://gitlab.gnome.org/GNOME/nautilus/commit/18a380af
Diffstat (limited to 'src/file-manager')
-rw-r--r--src/file-manager/fm-list-view.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index b68b6a31..d2ef57f6 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -460,13 +460,13 @@ stop_drag_check (FMListView *view)
view->details->drag_button = 0;
}
-static GdkPixbuf *
-get_drag_pixbuf (FMListView *view)
+static cairo_surface_t *
+get_drag_surface (FMListView *view)
{
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
- GdkPixbuf *ret;
+ cairo_surface_t *ret;
GdkRectangle cell_area;
ret = NULL;
@@ -500,15 +500,12 @@ drag_begin_callback (GtkWidget *widget,
FMListView *view)
{
GList *ref_list;
- GdkPixbuf *pixbuf;
+ cairo_surface_t *surface;
- pixbuf = get_drag_pixbuf (view);
- if (pixbuf)
- {
- gtk_drag_set_icon_pixbuf (context,
- pixbuf,
- 0, 0);
- g_object_unref (pixbuf);
+ surface = get_drag_surface (view);
+ if (surface) {
+ gtk_drag_set_icon_surface (context, surface);
+ cairo_surface_destroy (surface);
}
else
{