summaryrefslogtreecommitdiffstats
path: root/views/widget/root_view_win.cc
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-28 21:42:59 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-28 21:42:59 +0000
commit4768c65bc656d4352632a6fc718c8eb6d5046c84 (patch)
treec75cffe227847e1e1ab0952d337c3c853692924e /views/widget/root_view_win.cc
parent6638b8716b5630233efa54f8e8ea4b4758f01ca4 (diff)
downloadchromium_src-4768c65bc656d4352632a6fc718c8eb6d5046c84.zip
chromium_src-4768c65bc656d4352632a6fc718c8eb6d5046c84.tar.gz
chromium_src-4768c65bc656d4352632a6fc718c8eb6d5046c84.tar.bz2
Adds support for initiating drags from bookmark menus.
BUG=none TEST=make sure bookmark menus work on Windows. Review URL: http://codereview.chromium.org/176006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24801 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/root_view_win.cc')
-rw-r--r--views/widget/root_view_win.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/views/widget/root_view_win.cc b/views/widget/root_view_win.cc
index fedb40d..65aa1b7 100644
--- a/views/widget/root_view_win.cc
+++ b/views/widget/root_view_win.cc
@@ -6,6 +6,8 @@
#include "app/drag_drop_types.h"
#include "app/gfx/canvas_paint.h"
+#include "app/os_exchange_data.h"
+#include "app/os_exchange_data_provider_win.h"
#include "base/base_drag_source.h"
#include "base/logging.h"
@@ -33,16 +35,17 @@ void RootView::OnPaint(HWND hwnd) {
void RootView::StartDragForViewFromMouseEvent(
View* view,
- IDataObject* data,
+ const OSExchangeData& data,
int operation) {
+ // NOTE: view may be null.
drag_view_ = view;
scoped_refptr<BaseDragSource> drag_source(new BaseDragSource);
DWORD effects;
- DoDragDrop(data, drag_source,
+ DoDragDrop(OSExchangeDataProviderWin::GetIDataObject(data), drag_source,
DragDropTypes::DragOperationToDropEffect(operation), &effects);
// If the view is removed during the drag operation, drag_view_ is set to
// NULL.
- if (drag_view_ == view) {
+ if (view && drag_view_ == view) {
View* drag_view = drag_view_;
drag_view_ = NULL;
drag_view->OnDragDone();