| Index: ash/shell.cc
|
| diff --git a/ash/shell.cc b/ash/shell.cc
|
| index d5e7a6e33d5e4cf2f8f1d3a8193d5c9c402fd79e..e18264259d6b4f61038bfd068bd82e9398f08edc 100644
|
| --- a/ash/shell.cc
|
| +++ b/ash/shell.cc
|
| @@ -71,6 +71,7 @@
|
| #include "ash/wm/system_gesture_event_filter.h"
|
| #include "ash/wm/system_modal_container_event_filter.h"
|
| #include "ash/wm/system_modal_container_layout_manager.h"
|
| +#include "ash/wm/toplevel_window_event_handler.h"
|
| #include "ash/wm/user_activity_detector.h"
|
| #include "ash/wm/video_detector.h"
|
| #include "ash/wm/window_animations.h"
|
| @@ -608,12 +609,14 @@ Shell::~Shell() {
|
| RemovePreTargetHandler(user_activity_detector_.get());
|
| RemovePreTargetHandler(overlay_filter_.get());
|
| RemovePreTargetHandler(input_method_filter_.get());
|
| - if (mouse_cursor_filter_)
|
| - RemovePreTargetHandler(mouse_cursor_filter_.get());
|
| + RemovePreTargetHandler(accelerator_filter_.get());
|
| + RemovePreTargetHandler(event_transformation_handler_.get());
|
| + RemovePreTargetHandler(toplevel_window_event_handler_.get());
|
| + RemovePostTargetHandler(toplevel_window_event_handler_.get());
|
| RemovePreTargetHandler(system_gesture_filter_.get());
|
| RemovePreTargetHandler(keyboard_metrics_filter_.get());
|
| - RemovePreTargetHandler(event_transformation_handler_.get());
|
| - RemovePreTargetHandler(accelerator_filter_.get());
|
| + if (mouse_cursor_filter_)
|
| + RemovePreTargetHandler(mouse_cursor_filter_.get());
|
|
|
| // TooltipController is deleted with the Shell so removing its references.
|
| RemovePreTargetHandler(tooltip_controller_.get());
|
| @@ -676,6 +679,7 @@ Shell::~Shell() {
|
| tooltip_controller_.reset();
|
| event_client_.reset();
|
| nested_dispatcher_controller_.reset();
|
| + toplevel_window_event_handler_.reset();
|
| user_action_client_.reset();
|
| visibility_controller_.reset();
|
| // |shelf_item_delegate_manager_| observes |shelf_model_|. It must be
|
| @@ -826,6 +830,10 @@ void Shell::Init() {
|
| event_transformation_handler_.reset(new internal::EventTransformationHandler);
|
| AddPreTargetHandler(event_transformation_handler_.get());
|
|
|
| + toplevel_window_event_handler_.reset(new ToplevelWindowEventHandler);
|
| + AddPreTargetHandler(toplevel_window_event_handler_.get());
|
| + AddPostTargetHandler(toplevel_window_event_handler_.get());
|
| +
|
| system_gesture_filter_.reset(new internal::SystemGestureEventFilter);
|
| AddPreTargetHandler(system_gesture_filter_.get());
|
|
|
| @@ -984,6 +992,8 @@ void Shell::InitRootWindow(aura::Window* root_window) {
|
| aura::client::SetCursorClient(root_window, &cursor_manager_);
|
| aura::client::SetTooltipClient(root_window, tooltip_controller_.get());
|
| aura::client::SetEventClient(root_window, event_client_.get());
|
| + aura::client::SetWindowMoveClient(root_window,
|
| + toplevel_window_event_handler_.get());
|
|
|
| if (nested_dispatcher_controller_) {
|
| aura::client::SetDispatcherClient(root_window,
|
|
|