Index: base/base_drag_source.cc |
diff --git a/base/base_drag_source.cc b/base/base_drag_source.cc |
index bdaab1eba93e860fc5a6130e16ecff878f8ce48b..bc81395525746dff854821fecbd14b6a9d0fb715 100644 |
--- a/base/base_drag_source.cc |
+++ b/base/base_drag_source.cc |
@@ -7,7 +7,7 @@ |
/////////////////////////////////////////////////////////////////////////////// |
// BaseDragSource, public: |
-BaseDragSource::BaseDragSource() : ref_count_(0) { |
+BaseDragSource::BaseDragSource() : ref_count_(0), cancel_drag_(false) { |
} |
/////////////////////////////////////////////////////////////////////////////// |
@@ -15,6 +15,9 @@ BaseDragSource::BaseDragSource() : ref_count_(0) { |
HRESULT BaseDragSource::QueryContinueDrag(BOOL escape_pressed, |
DWORD key_state) { |
+ if (cancel_drag_) |
+ return DRAGDROP_S_CANCEL; |
+ |
if (escape_pressed) { |
OnDragSourceCancel(); |
return DRAGDROP_S_CANCEL; |