From 0bfea3e1b131d5249caf4ecc17e867bacb45604e Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Fri, 1 Jun 2012 18:40:04 +0000 Subject: [PATCH] Mac: Delay destroying the browser window until pending drag operations have completed (issue #610). git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@663 5089003a-bbd8-11dd-ad1f-f1f9622dbc98 --- cef1/libcef/browser_webview_delegate_mac.mm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cef1/libcef/browser_webview_delegate_mac.mm b/cef1/libcef/browser_webview_delegate_mac.mm index 5029df379..2230be163 100644 --- a/cef1/libcef/browser_webview_delegate_mac.mm +++ b/cef1/libcef/browser_webview_delegate_mac.mm @@ -401,10 +401,17 @@ void BrowserWebViewDelegate::startDragging( ns_image = gfx::SkBitmapToNSImageWithColorSpace(bitmap, color_space); } NSPoint offset = NSPointFromCGPoint(gfx::Point(image_offset).ToCGPoint()); + + // Keep a reference to the NSView so that it won't be destroyed until after + // the drag operation has completed. + [view retain]; + [view startDragWithDropData:drop_data dragOperationMask:static_cast(mask) image:ns_image offset:offset]; + + [view release]; } void BrowserWebViewDelegate::runModal() {