diff options
author | skrul@google.com <skrul@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-21 20:01:08 +0000 |
---|---|---|
committer | skrul@google.com <skrul@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-21 20:01:08 +0000 |
commit | 6806d48ab1ce1f7dc3104033467581959368c28e (patch) | |
tree | 7875e66662af55969be0b3e668525c5a6b336b84 /views/widget | |
parent | e08d7b463a5c82d253def91b20c8ed1756e8d337 (diff) | |
download | chromium_src-6806d48ab1ce1f7dc3104033467581959368c28e.zip chromium_src-6806d48ab1ce1f7dc3104033467581959368c28e.tar.gz chromium_src-6806d48ab1ce1f7dc3104033467581959368c28e.tar.bz2 |
Implement dragging icon for dragging bookmarks in views/gtk.
Review URL: http://codereview.chromium.org/270068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29692 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r-- | views/widget/widget_gtk.cc | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc index cfd9a44..de5b43e 100644 --- a/views/widget/widget_gtk.cc +++ b/views/widget/widget_gtk.cc @@ -184,10 +184,23 @@ void WidgetGtk::DoDrag(const OSExchangeData& data, int operation) { GtkTargetList* targets = data_provider.GetTargetList(); GdkEvent* current_event = gtk_get_current_event(); DCHECK(current_event); - gtk_drag_begin(window_contents_, targets, - static_cast<GdkDragAction>( - DragDropTypes::DragOperationToGdkDragAction(operation)), - 1, current_event); + const OSExchangeDataProviderGtk& provider( + static_cast<const OSExchangeDataProviderGtk&>(data.provider())); + + GdkDragContext* context = gtk_drag_begin( + window_contents_, + targets, + static_cast<GdkDragAction>( + DragDropTypes::DragOperationToGdkDragAction(operation)), + 1, + current_event); + + // Set the drag image if one was supplied. + if (provider.drag_image()) + gtk_drag_set_icon_pixbuf(context, + provider.drag_image(), + provider.cursor_offset_x(), + provider.cursor_offset_y()); gdk_event_free(current_event); gtk_target_list_unref(targets); |