Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Unified Diff: ash/shell.cc

Issue 114643003: Use a single ToplevelWindowEventHandler for the ash::Shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/shell.h ('k') | ash/wm/panels/panel_window_event_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « ash/shell.h ('k') | ash/wm/panels/panel_window_event_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698