Index: chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
index dade1abee6e930f30655e9191b7482c833966fdf..f22769e8cb6616d7b2e84fa97381fbb9c2b3b374 100644 |
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc |
@@ -42,6 +42,7 @@ |
#include "grit/generated_resources.h" |
#include "grit/theme_resources.h" |
#include "grit/ui_resources.h" |
+#include "ui/base/dragdrop/drag_drop_types.h" |
#include "ui/base/dragdrop/gtk_dnd_util.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -1273,18 +1274,15 @@ void BookmarkBarGtk::OnDragReceived(GtkWidget* widget, |
switch (target_type) { |
case ui::CHROME_BOOKMARK_ITEM: { |
- std::vector<const BookmarkNode*> nodes = |
- bookmark_utils::GetNodesFromSelection(context, selection_data, |
- target_type, |
- browser_->profile(), |
- &delete_selection_data, |
- &dnd_success); |
- DCHECK(!nodes.empty()); |
- for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); |
- it != nodes.end(); ++it) { |
- model_->Move(*it, dest_node, index); |
- index = dest_node->GetIndexOf(*it) + 1; |
- } |
+ Pickle pickle(reinterpret_cast<char*>(selection_data->data), |
+ selection_data->length); |
+ BookmarkNodeData drag_data; |
+ DCHECK(drag_data.ReadFromPickle(&pickle)); |
+ dnd_success = bookmark_utils::PerformBookmarkDrop( |
+ browser_->profile(), |
+ drag_data, |
+ dest_node, |
+ index) != ui::DragDropTypes::DRAG_NONE; |
break; |
} |