diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-18 17:10:18 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-18 17:10:18 +0000 |
commit | 2ca8a064a206fba910dc0f50f8a2f2509828d8f1 (patch) | |
tree | 9e128f90d2392b901aca101baabe12dd36621943 /chrome/browser/gtk/bookmark_utils_gtk.cc | |
parent | 911f815112d8d11778c771467fbef2c2b1f8e160 (diff) | |
download | chromium_src-2ca8a064a206fba910dc0f50f8a2f2509828d8f1.zip chromium_src-2ca8a064a206fba910dc0f50f8a2f2509828d8f1.tar.gz chromium_src-2ca8a064a206fba910dc0f50f8a2f2509828d8f1.tar.bz2 |
GTK: implement extension bookmark manager drag api.
Also, cross-platform: eschew RenderViewHostDelegate:BookmarkDrag::DragData type in favor of BookmarkDragData.
BUG=37702
TEST=manual
Review URL: http://codereview.chromium.org/1029004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41959 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/bookmark_utils_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/bookmark_utils_gtk.cc | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chrome/browser/gtk/bookmark_utils_gtk.cc b/chrome/browser/gtk/bookmark_utils_gtk.cc index 73b3feda..c15c9fb 100644 --- a/chrome/browser/gtk/bookmark_utils_gtk.cc +++ b/chrome/browser/gtk/bookmark_utils_gtk.cc @@ -198,6 +198,16 @@ void SetButtonTextColors(GtkWidget* label, GtkThemeProvider* provider) { // DnD-related ----------------------------------------------------------------- +int GetCodeMask(bool folder) { + int rv = gtk_dnd_util::CHROME_BOOKMARK_ITEM; + if (!folder) { + rv |= gtk_dnd_util::TEXT_URI_LIST | + gtk_dnd_util::TEXT_PLAIN | + gtk_dnd_util::NETSCAPE_URL; + } + return rv; +} + void WriteBookmarkToSelection(const BookmarkNode* node, GtkSelectionData* selection_data, guint target_type, @@ -272,17 +282,19 @@ std::vector<const BookmarkNode*> GetNodesFromSelection( Profile* profile, gboolean* delete_selection_data, gboolean* dnd_success) { - *delete_selection_data = FALSE; - *dnd_success = FALSE; + if (delete_selection_data) + *delete_selection_data = FALSE; + if (dnd_success) + *dnd_success = FALSE; if ((selection_data != NULL) && (selection_data->length >= 0)) { - if (context->action == GDK_ACTION_MOVE) { + if (context && delete_selection_data && context->action == GDK_ACTION_MOVE) *delete_selection_data = TRUE; - } switch (target_type) { case gtk_dnd_util::CHROME_BOOKMARK_ITEM: { - *dnd_success = TRUE; + if (dnd_success) + *dnd_success = TRUE; Pickle pickle(reinterpret_cast<char*>(selection_data->data), selection_data->length); BookmarkDragData drag_data; |