summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/bookmark_utils_gtk.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-18 17:10:18 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-18 17:10:18 +0000
commit2ca8a064a206fba910dc0f50f8a2f2509828d8f1 (patch)
tree9e128f90d2392b901aca101baabe12dd36621943 /chrome/browser/gtk/bookmark_utils_gtk.cc
parent911f815112d8d11778c771467fbef2c2b1f8e160 (diff)
downloadchromium_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.cc22
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;