| Index: chrome/browser/download/download_util.cc
|
| diff --git a/chrome/browser/download/download_util.cc b/chrome/browser/download/download_util.cc
|
| index 59aaedb5416bf1a766469c8e450131ad42d0df24..387a42022c5e4047584f9d8c6411bb9ba61ce4f8 100644
|
| --- a/chrome/browser/download/download_util.cc
|
| +++ b/chrome/browser/download/download_util.cc
|
| @@ -78,6 +78,12 @@
|
| #include "ui/base/dragdrop/os_exchange_data_provider_win.h"
|
| #endif
|
|
|
| +#if defined(USE_AURA)
|
| +#include "ui/aura/client/drag_drop_client.h"
|
| +#include "ui/aura/root_window.h"
|
| +#include "ui/aura/window.h"
|
| +#endif
|
| +
|
| namespace {
|
|
|
| // Returns a string constant to be used as the |danger_type| value in
|
| @@ -407,11 +413,12 @@ void DragDownload(const DownloadItem* download,
|
|
|
| #if !defined(TOOLKIT_GTK)
|
| #if defined(USE_AURA)
|
| - views::Widget* widget = views::Widget::GetWidgetForNativeView(view);
|
| + aura::RootWindow* root_window = view->GetRootWindow();
|
| + if (!root_window || !aura::client::GetDragDropClient(root_window))
|
| + return;
|
| +
|
| gfx::Point location = gfx::Screen::GetCursorScreenPoint();
|
| - // We do not care about notifying the DragItemView on completion of drag. So
|
| - // we pass NULL to RunShellDrag for the source view.
|
| - widget->RunShellDrag(NULL, data, location,
|
| + aura::client::GetDragDropClient(root_window)->StartDragAndDrop(data, location,
|
| ui::DragDropTypes::DRAG_COPY | ui::DragDropTypes::DRAG_LINK);
|
| #else // We are on WIN without AURA
|
| // We cannot use Widget::RunShellDrag on WIN since the |view| is backed by a
|
|
|