summaryrefslogtreecommitdiffstats
path: root/ui/views/corewm
diff options
context:
space:
mode:
Diffstat (limited to 'ui/views/corewm')
-rw-r--r--ui/views/corewm/window_modality_controller.cc8
-rw-r--r--ui/views/corewm/window_modality_controller.h5
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);
};