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

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm

Issue 1854223002: mac: Fix bookmark drag and drop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@temp37_dnd
Patch Set: Fix memory leak. Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm
index 983b0fc6b87de808faefda180c4ddc40c59a8178..e08c0a22f459d63156276799c76041c272f181e5 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_button.mm
@@ -36,12 +36,7 @@ namespace {
BookmarkButton* gDraggedButton = nil; // Weak
};
-@interface BookmarkButton() <NSPasteboardItemDataProvider>
-
-// NSPasteboardItemDataProvider:
-- (void)pasteboard:(NSPasteboard*)sender
- item:(NSPasteboardItem*)item
- provideDataForType:(NSString*)type;
+@interface BookmarkButton()
// NSDraggingSource:
- (void)draggingSession:(NSDraggingSession*)session
@@ -201,7 +196,7 @@ BookmarkButton* gDraggedButton = nil; // Weak
delay:NO];
}
const BookmarkNode* node = [self bookmarkNode];
- const BookmarkNode* parent = node ? node->parent() : NULL;
+ const BookmarkNode* parent = node->parent();
if (parent && parent->type() == BookmarkNode::FOLDER) {
content::RecordAction(UserMetricsAction("BookmarkBarFolder_DragStart"));
} else {
@@ -215,13 +210,12 @@ BookmarkButton* gDraggedButton = nil; // Weak
NSImage* image = [self dragImage];
[self setHidden:YES];
- NSPasteboardItem* pbItem = [NSPasteboardItem new];
- [pbItem setDataProvider:self
- forTypes:@[ ui::ClipboardUtil::UTIForPasteboardType(
- kBookmarkButtonDragType) ]];
+ NSPasteboardItem* item = [[self delegate] pasteboardItemForDragOfButton:self];
+ if ([[self delegate] respondsToSelector:@selector(willBeginPasteboardDrag)])
+ [[self delegate] willBeginPasteboardDrag];
base::scoped_nsobject<NSDraggingItem> dragItem(
- [[NSDraggingItem alloc] initWithPasteboardWriter:pbItem]);
+ [[NSDraggingItem alloc] initWithPasteboardWriter:item]);
[dragItem setDraggingFrame:[self bounds] contents:image];
[self beginDraggingSessionWithItems:@[ dragItem.get() ]
@@ -240,15 +234,6 @@ BookmarkButton* gDraggedButton = nil; // Weak
[self autorelease];
}
-- (void)pasteboard:(NSPasteboard*)sender
- item:(NSPasteboardItem*)item
- provideDataForType:(NSString*)type {
- [sender
- setData:[NSData dataWithBytes:&gDraggedButton
- length:sizeof(gDraggedButton)]
- forType:ui::ClipboardUtil::UTIForPasteboardType(kBookmarkButtonDragType)];
-}
-
- (NSDragOperation)draggingSession:(NSDraggingSession*)session
sourceOperationMaskForDraggingContext:(NSDraggingContext)context {
NSDragOperation operation = NSDragOperationCopy;
« no previous file with comments | « chrome/browser/ui/cocoa/bookmarks/bookmark_button.h ('k') | chrome/browser/ui/cocoa/bookmarks/bookmark_button_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698