diff options
Diffstat (limited to 'ui/views/corewm')
-rw-r--r-- | ui/views/corewm/window_modality_controller.cc | 8 | ||||
-rw-r--r-- | ui/views/corewm/window_modality_controller.h | 5 |
2 files changed, 11 insertions, 2 deletions
diff --git a/ui/views/corewm/window_modality_controller.cc b/ui/views/corewm/window_modality_controller.cc index 8a3a7ff..e177b88 100644 --- a/ui/views/corewm/window_modality_controller.cc +++ b/ui/views/corewm/window_modality_controller.cc @@ -14,6 +14,7 @@ #include "ui/aura/window_property.h" #include "ui/base/ui_base_types.h" #include "ui/events/event.h" +#include "ui/events/event_target.h" #include "ui/views/corewm/window_animations.h" #include "ui/views/corewm/window_util.h" @@ -95,11 +96,16 @@ aura::Window* GetModalTransient(aura::Window* window) { //////////////////////////////////////////////////////////////////////////////// // WindowModalityController, public: -WindowModalityController::WindowModalityController() { +WindowModalityController::WindowModalityController( + ui::EventTarget* event_target) + : event_target_(event_target) { aura::Env::GetInstance()->AddObserver(this); + DCHECK(event_target->IsPreTargetListEmpty()); + event_target_->AddPreTargetHandler(this); } WindowModalityController::~WindowModalityController() { + event_target_->RemovePreTargetHandler(this); aura::Env::GetInstance()->RemoveObserver(this); for (size_t i = 0; i < windows_.size(); ++i) windows_[i]->RemoveObserver(this); diff --git a/ui/views/corewm/window_modality_controller.h b/ui/views/corewm/window_modality_controller.h index 07fe308..88150a5 100644 --- a/ui/views/corewm/window_modality_controller.h +++ b/ui/views/corewm/window_modality_controller.h @@ -14,6 +14,7 @@ #include "ui/views/views_export.h" namespace ui { +class EventTarget; class LocatedEvent; } @@ -34,7 +35,7 @@ class VIEWS_EXPORT WindowModalityController : public ui::EventHandler, public aura::EnvObserver, public aura::WindowObserver { public: - WindowModalityController(); + explicit WindowModalityController(ui::EventTarget* event_target); virtual ~WindowModalityController(); // Overridden from ui::EventHandler: @@ -61,6 +62,8 @@ class VIEWS_EXPORT WindowModalityController : public ui::EventHandler, std::vector<aura::Window*> windows_; + ui::EventTarget* event_target_; + DISALLOW_COPY_AND_ASSIGN(WindowModalityController); }; |