Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(364)

Side by Side Diff: chrome/browser/gtk/bookmark_menu_controller_gtk.cc

Issue 548067: Allow link drags from the star, bookmarks bar, and bookmark bar menus (Closed)
Patch Set: Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.cc ('k') | chrome/browser/gtk/bookmark_utils_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/gtk/bookmark_menu_controller_gtk.h" 5 #include "chrome/browser/gtk/bookmark_menu_controller_gtk.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "app/gfx/gtk_util.h" 9 #include "app/gfx/gtk_util.h"
10 #include "app/gtk_dnd_util.h" 10 #include "app/gtk_dnd_util.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 g_signal_connect(G_OBJECT(menu_item), "button-release-event", 179 g_signal_connect(G_OBJECT(menu_item), "button-release-event",
180 G_CALLBACK(OnButtonReleased), this); 180 G_CALLBACK(OnButtonReleased), this);
181 } else if (node->is_folder()) { 181 } else if (node->is_folder()) {
182 GtkWidget* submenu = gtk_menu_new(); 182 GtkWidget* submenu = gtk_menu_new();
183 BuildMenu(node, 0, submenu); 183 BuildMenu(node, 0, submenu);
184 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu); 184 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu);
185 } else { 185 } else {
186 NOTREACHED(); 186 NOTREACHED();
187 } 187 }
188 188
189 gtk_drag_source_set(menu_item, GDK_BUTTON1_MASK, 189 gtk_drag_source_set(menu_item, GDK_BUTTON1_MASK, NULL, 0,
190 NULL, 0, GDK_ACTION_MOVE); 190 static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_LINK));
191 int target_mask = GtkDndUtil::CHROME_BOOKMARK_ITEM; 191 int target_mask = GtkDndUtil::CHROME_BOOKMARK_ITEM;
192 if (node->is_url()) 192 if (node->is_url())
193 target_mask |= GtkDndUtil::TEXT_URI_LIST; 193 target_mask |= GtkDndUtil::TEXT_URI_LIST | GtkDndUtil::NETSCAPE_URL;
194 GtkDndUtil::SetSourceTargetListFromCodeMask(menu_item, target_mask); 194 GtkDndUtil::SetSourceTargetListFromCodeMask(menu_item, target_mask);
195 g_signal_connect(G_OBJECT(menu_item), "drag-begin", 195 g_signal_connect(G_OBJECT(menu_item), "drag-begin",
196 G_CALLBACK(&OnMenuItemDragBegin), this); 196 G_CALLBACK(&OnMenuItemDragBegin), this);
197 g_signal_connect(G_OBJECT(menu_item), "drag-end", 197 g_signal_connect(G_OBJECT(menu_item), "drag-end",
198 G_CALLBACK(&OnMenuItemDragEnd), this); 198 G_CALLBACK(&OnMenuItemDragEnd), this);
199 g_signal_connect(G_OBJECT(menu_item), "drag-data-get", 199 g_signal_connect(G_OBJECT(menu_item), "drag-data-get",
200 G_CALLBACK(&OnMenuItemDragGet), this); 200 G_CALLBACK(&OnMenuItemDragGet), this);
201 201
202 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); 202 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
203 node_to_menu_widget_map_[node] = menu_item; 203 node_to_menu_widget_map_[node] = menu_item;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 // static 349 // static
350 void BookmarkMenuController::OnMenuItemDragGet( 350 void BookmarkMenuController::OnMenuItemDragGet(
351 GtkWidget* widget, GdkDragContext* context, 351 GtkWidget* widget, GdkDragContext* context,
352 GtkSelectionData* selection_data, 352 GtkSelectionData* selection_data,
353 guint target_type, guint time, 353 guint target_type, guint time,
354 BookmarkMenuController* controller) { 354 BookmarkMenuController* controller) {
355 const BookmarkNode* node = bookmark_utils::BookmarkNodeForWidget(widget); 355 const BookmarkNode* node = bookmark_utils::BookmarkNodeForWidget(widget);
356 bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type, 356 bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type,
357 controller->profile_); 357 controller->profile_);
358 } 358 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.cc ('k') | chrome/browser/gtk/bookmark_utils_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698