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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/shell.h ('k') | ash/wm/panels/panel_window_event_handler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/accelerator_controller.h" 10 #include "ash/accelerators/accelerator_controller.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 #include "ash/wm/mru_window_tracker.h" 64 #include "ash/wm/mru_window_tracker.h"
65 #include "ash/wm/overlay_event_filter.h" 65 #include "ash/wm/overlay_event_filter.h"
66 #include "ash/wm/overview/window_selector_controller.h" 66 #include "ash/wm/overview/window_selector_controller.h"
67 #include "ash/wm/power_button_controller.h" 67 #include "ash/wm/power_button_controller.h"
68 #include "ash/wm/resize_shadow_controller.h" 68 #include "ash/wm/resize_shadow_controller.h"
69 #include "ash/wm/root_window_layout_manager.h" 69 #include "ash/wm/root_window_layout_manager.h"
70 #include "ash/wm/screen_dimmer.h" 70 #include "ash/wm/screen_dimmer.h"
71 #include "ash/wm/system_gesture_event_filter.h" 71 #include "ash/wm/system_gesture_event_filter.h"
72 #include "ash/wm/system_modal_container_event_filter.h" 72 #include "ash/wm/system_modal_container_event_filter.h"
73 #include "ash/wm/system_modal_container_layout_manager.h" 73 #include "ash/wm/system_modal_container_layout_manager.h"
74 #include "ash/wm/toplevel_window_event_handler.h"
74 #include "ash/wm/user_activity_detector.h" 75 #include "ash/wm/user_activity_detector.h"
75 #include "ash/wm/video_detector.h" 76 #include "ash/wm/video_detector.h"
76 #include "ash/wm/window_animations.h" 77 #include "ash/wm/window_animations.h"
77 #include "ash/wm/window_cycle_controller.h" 78 #include "ash/wm/window_cycle_controller.h"
78 #include "ash/wm/window_positioner.h" 79 #include "ash/wm/window_positioner.h"
79 #include "ash/wm/window_properties.h" 80 #include "ash/wm/window_properties.h"
80 #include "ash/wm/window_util.h" 81 #include "ash/wm/window_util.h"
81 #include "ash/wm/workspace_controller.h" 82 #include "ash/wm/workspace_controller.h"
82 #include "base/bind.h" 83 #include "base/bind.h"
83 #include "base/command_line.h" 84 #include "base/command_line.h"
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 // See bug crbug.com/134502. 602 // See bug crbug.com/134502.
602 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(NULL); 603 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(NULL);
603 604
604 // Please keep in same order as in Init() because it's easy to miss one. 605 // Please keep in same order as in Init() because it's easy to miss one.
605 if (window_modality_controller_) 606 if (window_modality_controller_)
606 window_modality_controller_.reset(); 607 window_modality_controller_.reset();
607 RemovePreTargetHandler(event_rewriter_filter_.get()); 608 RemovePreTargetHandler(event_rewriter_filter_.get());
608 RemovePreTargetHandler(user_activity_detector_.get()); 609 RemovePreTargetHandler(user_activity_detector_.get());
609 RemovePreTargetHandler(overlay_filter_.get()); 610 RemovePreTargetHandler(overlay_filter_.get());
610 RemovePreTargetHandler(input_method_filter_.get()); 611 RemovePreTargetHandler(input_method_filter_.get());
612 RemovePreTargetHandler(accelerator_filter_.get());
613 RemovePreTargetHandler(event_transformation_handler_.get());
614 RemovePreTargetHandler(toplevel_window_event_handler_.get());
615 RemovePostTargetHandler(toplevel_window_event_handler_.get());
616 RemovePreTargetHandler(system_gesture_filter_.get());
617 RemovePreTargetHandler(keyboard_metrics_filter_.get());
611 if (mouse_cursor_filter_) 618 if (mouse_cursor_filter_)
612 RemovePreTargetHandler(mouse_cursor_filter_.get()); 619 RemovePreTargetHandler(mouse_cursor_filter_.get());
613 RemovePreTargetHandler(system_gesture_filter_.get());
614 RemovePreTargetHandler(keyboard_metrics_filter_.get());
615 RemovePreTargetHandler(event_transformation_handler_.get());
616 RemovePreTargetHandler(accelerator_filter_.get());
617 620
618 // TooltipController is deleted with the Shell so removing its references. 621 // TooltipController is deleted with the Shell so removing its references.
619 RemovePreTargetHandler(tooltip_controller_.get()); 622 RemovePreTargetHandler(tooltip_controller_.get());
620 623
621 // AppList needs to be released before shelf layout manager, which is 624 // AppList needs to be released before shelf layout manager, which is
622 // destroyed with shelf container in the loop below. However, app list 625 // destroyed with shelf container in the loop below. However, app list
623 // container is now on top of shelf container and released after it. 626 // container is now on top of shelf container and released after it.
624 // TODO(xiyuan): Move it back when app list container is no longer needed. 627 // TODO(xiyuan): Move it back when app list container is no longer needed.
625 app_list_controller_.reset(); 628 app_list_controller_.reset();
626 629
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 system_tray_notifier_.reset(); 672 system_tray_notifier_.reset();
670 673
671 // These need a valid Shell instance to clean up properly, so explicitly 674 // These need a valid Shell instance to clean up properly, so explicitly
672 // delete them before invalidating the instance. 675 // delete them before invalidating the instance.
673 // Alphabetical. TODO(oshima): sort. 676 // Alphabetical. TODO(oshima): sort.
674 magnification_controller_.reset(); 677 magnification_controller_.reset();
675 partial_magnification_controller_.reset(); 678 partial_magnification_controller_.reset();
676 tooltip_controller_.reset(); 679 tooltip_controller_.reset();
677 event_client_.reset(); 680 event_client_.reset();
678 nested_dispatcher_controller_.reset(); 681 nested_dispatcher_controller_.reset();
682 toplevel_window_event_handler_.reset();
679 user_action_client_.reset(); 683 user_action_client_.reset();
680 visibility_controller_.reset(); 684 visibility_controller_.reset();
681 // |shelf_item_delegate_manager_| observes |shelf_model_|. It must be 685 // |shelf_item_delegate_manager_| observes |shelf_model_|. It must be
682 // destroyed before |shelf_model_| is destroyed. 686 // destroyed before |shelf_model_| is destroyed.
683 shelf_item_delegate_manager_.reset(); 687 shelf_item_delegate_manager_.reset();
684 shelf_model_.reset(); 688 shelf_model_.reset();
685 689
686 power_button_controller_.reset(); 690 power_button_controller_.reset();
687 lock_state_controller_.reset(); 691 lock_state_controller_.reset();
688 692
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 input_method_filter_.reset(new views::corewm::InputMethodEventFilter( 823 input_method_filter_.reset(new views::corewm::InputMethodEventFilter(
820 root_window->GetDispatcher()->host()->GetAcceleratedWidget())); 824 root_window->GetDispatcher()->host()->GetAcceleratedWidget()));
821 AddPreTargetHandler(input_method_filter_.get()); 825 AddPreTargetHandler(input_method_filter_.get());
822 826
823 accelerator_filter_.reset(new internal::AcceleratorFilter); 827 accelerator_filter_.reset(new internal::AcceleratorFilter);
824 AddPreTargetHandler(accelerator_filter_.get()); 828 AddPreTargetHandler(accelerator_filter_.get());
825 829
826 event_transformation_handler_.reset(new internal::EventTransformationHandler); 830 event_transformation_handler_.reset(new internal::EventTransformationHandler);
827 AddPreTargetHandler(event_transformation_handler_.get()); 831 AddPreTargetHandler(event_transformation_handler_.get());
828 832
833 toplevel_window_event_handler_.reset(new ToplevelWindowEventHandler);
834 AddPreTargetHandler(toplevel_window_event_handler_.get());
835 AddPostTargetHandler(toplevel_window_event_handler_.get());
836
829 system_gesture_filter_.reset(new internal::SystemGestureEventFilter); 837 system_gesture_filter_.reset(new internal::SystemGestureEventFilter);
830 AddPreTargetHandler(system_gesture_filter_.get()); 838 AddPreTargetHandler(system_gesture_filter_.get());
831 839
832 keyboard_metrics_filter_.reset(new internal::KeyboardUMAEventFilter); 840 keyboard_metrics_filter_.reset(new internal::KeyboardUMAEventFilter);
833 AddPreTargetHandler(keyboard_metrics_filter_.get()); 841 AddPreTargetHandler(keyboard_metrics_filter_.get());
834 842
835 // The keyboard system must be initialized before the RootWindowController is 843 // The keyboard system must be initialized before the RootWindowController is
836 // created. 844 // created.
837 if (keyboard::IsKeyboardEnabled()) 845 if (keyboard::IsKeyboardEnabled())
838 keyboard::InitializeKeyboard(); 846 keyboard::InitializeKeyboard();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 views::corewm::FocusController* focus_controller = 985 views::corewm::FocusController* focus_controller =
978 static_cast<views::corewm::FocusController*>(activation_client_); 986 static_cast<views::corewm::FocusController*>(activation_client_);
979 root_window->AddPreTargetHandler(focus_controller); 987 root_window->AddPreTargetHandler(focus_controller);
980 aura::client::SetVisibilityClient(root_window, visibility_controller_.get()); 988 aura::client::SetVisibilityClient(root_window, visibility_controller_.get());
981 aura::client::SetDragDropClient(root_window, drag_drop_controller_.get()); 989 aura::client::SetDragDropClient(root_window, drag_drop_controller_.get());
982 aura::client::SetScreenPositionClient(root_window, 990 aura::client::SetScreenPositionClient(root_window,
983 screen_position_controller_.get()); 991 screen_position_controller_.get());
984 aura::client::SetCursorClient(root_window, &cursor_manager_); 992 aura::client::SetCursorClient(root_window, &cursor_manager_);
985 aura::client::SetTooltipClient(root_window, tooltip_controller_.get()); 993 aura::client::SetTooltipClient(root_window, tooltip_controller_.get());
986 aura::client::SetEventClient(root_window, event_client_.get()); 994 aura::client::SetEventClient(root_window, event_client_.get());
995 aura::client::SetWindowMoveClient(root_window,
996 toplevel_window_event_handler_.get());
987 997
988 if (nested_dispatcher_controller_) { 998 if (nested_dispatcher_controller_) {
989 aura::client::SetDispatcherClient(root_window, 999 aura::client::SetDispatcherClient(root_window,
990 nested_dispatcher_controller_.get()); 1000 nested_dispatcher_controller_.get());
991 } 1001 }
992 if (user_action_client_) 1002 if (user_action_client_)
993 aura::client::SetUserActionClient(root_window, user_action_client_.get()); 1003 aura::client::SetUserActionClient(root_window, user_action_client_.get());
994 } 1004 }
995 1005
996 bool Shell::CanWindowReceiveEvents(aura::Window* window) { 1006 bool Shell::CanWindowReceiveEvents(aura::Window* window) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 //////////////////////////////////////////////////////////////////////////////// 1041 ////////////////////////////////////////////////////////////////////////////////
1032 // Shell, aura::client::ActivationChangeObserver implementation: 1042 // Shell, aura::client::ActivationChangeObserver implementation:
1033 1043
1034 void Shell::OnWindowActivated(aura::Window* gained_active, 1044 void Shell::OnWindowActivated(aura::Window* gained_active,
1035 aura::Window* lost_active) { 1045 aura::Window* lost_active) {
1036 if (gained_active) 1046 if (gained_active)
1037 target_root_window_ = gained_active->GetRootWindow(); 1047 target_root_window_ = gained_active->GetRootWindow();
1038 } 1048 }
1039 1049
1040 } // namespace ash 1050 } // namespace ash
OLDNEW
« 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