diff options
author | Cosimo Cecchi <[email protected]> | 2013-08-05 03:54:18 +0200 |
---|---|---|
committer | lukefromdc <[email protected]> | 2018-04-04 21:53:21 -0400 |
commit | e28ff9cf17d8d72393ace9d68f9864ccbbc28e02 (patch) | |
tree | d215df229f2fafca04d0d755639c0848db93b25b /src/file-manager | |
parent | ef78aa3fe9043d256f269b4aa25234e42b9eecae (diff) | |
download | caja-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.c | 19 |
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 { |