| Index: chrome/browser/gtk/tab_contents_drag_source.cc
|
| ===================================================================
|
| --- chrome/browser/gtk/tab_contents_drag_source.cc (revision 41876)
|
| +++ chrome/browser/gtk/tab_contents_drag_source.cc (working copy)
|
| @@ -70,7 +70,9 @@
|
| }
|
|
|
| void TabContentsDragSource::StartDragging(const WebDropData& drop_data,
|
| - GdkEventButton* last_mouse_down) {
|
| + GdkEventButton* last_mouse_down,
|
| + const SkBitmap& image,
|
| + const gfx::Point& image_offset) {
|
| int targets_mask = 0;
|
|
|
| if (!drop_data.plain_text.empty())
|
| @@ -99,6 +101,8 @@
|
| }
|
|
|
| drop_data_.reset(new WebDropData(drop_data));
|
| + drag_image_ = image;
|
| + image_offset_ = image_offset;
|
|
|
| GtkTargetList* list = gtk_dnd_util::GetTargetListFromCodeMask(targets_mask);
|
| if (targets_mask & gtk_dnd_util::CHROME_WEBDROP_FILE_CONTENTS) {
|
| @@ -304,6 +308,14 @@
|
| generated_download_file_name.value().c_str()),
|
| generated_download_file_name.value().length());
|
| }
|
| +
|
| + if (!drag_image_.isNull()) {
|
| + GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&drag_image_);
|
| + gtk_drag_set_icon_pixbuf(drag_context, pixbuf,
|
| + image_offset_.x(), image_offset_.y());
|
| + // Let the drag take ownership.
|
| + g_object_unref(pixbuf);
|
| + }
|
| }
|
|
|
| void TabContentsDragSource::OnDragEnd(GdkDragContext* drag_context,
|
|
|