Index: ui/aura/desktop.cc |
diff --git a/ui/aura/desktop.cc b/ui/aura/desktop.cc |
index d08a062c1888b750b34f309433c89db179e8f453..a29a63f30c177592e1b6770b978a7daedbeb3d19 100644 |
--- a/ui/aura/desktop.cc |
+++ b/ui/aura/desktop.cc |
@@ -14,6 +14,7 @@ |
#include "base/string_number_conversions.h" |
#include "base/string_split.h" |
#include "ui/aura/aura_switches.h" |
+#include "ui/aura/client/drag_drop_client.h" |
#include "ui/aura/client/stacking_client.h" |
#include "ui/aura/desktop_host.h" |
#include "ui/aura/desktop_observer.h" |
@@ -196,6 +197,10 @@ void Desktop::SetStackingClient(StackingClient* stacking_client) { |
stacking_client_.reset(stacking_client); |
} |
+void Desktop::SetDragDropClient(DragDropClient* drag_drop_client) { |
+ drag_drop_client_.reset(drag_drop_client); |
+} |
+ |
void Desktop::ShowDesktop() { |
host_->Show(); |
} |
@@ -411,6 +416,10 @@ void Desktop::SetCapture(Window* window) { |
mouse_pressed_handler_ = capture_window_; |
if (touch_event_handler_) |
touch_event_handler_ = capture_window_; |
+ } else { |
+ // When capture is lost, we must reset the event handlers. |
+ mouse_pressed_handler_ = NULL; |
+ touch_event_handler_ = NULL; |
} |
} |