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

Side by Side Diff: ash/root_window_controller.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/root_window_controller.h ('k') | ash/shell.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/root_window_controller.h" 5 #include "ash/root_window_controller.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/ash_constants.h" 10 #include "ash/ash_constants.h"
(...skipping 23 matching lines...) Expand all
34 #include "ash/wm/dock/docked_window_layout_manager.h" 34 #include "ash/wm/dock/docked_window_layout_manager.h"
35 #include "ash/wm/panels/panel_layout_manager.h" 35 #include "ash/wm/panels/panel_layout_manager.h"
36 #include "ash/wm/panels/panel_window_event_handler.h" 36 #include "ash/wm/panels/panel_window_event_handler.h"
37 #include "ash/wm/root_window_layout_manager.h" 37 #include "ash/wm/root_window_layout_manager.h"
38 #include "ash/wm/screen_dimmer.h" 38 #include "ash/wm/screen_dimmer.h"
39 #include "ash/wm/solo_window_tracker.h" 39 #include "ash/wm/solo_window_tracker.h"
40 #include "ash/wm/stacking_controller.h" 40 #include "ash/wm/stacking_controller.h"
41 #include "ash/wm/status_area_layout_manager.h" 41 #include "ash/wm/status_area_layout_manager.h"
42 #include "ash/wm/system_background_controller.h" 42 #include "ash/wm/system_background_controller.h"
43 #include "ash/wm/system_modal_container_layout_manager.h" 43 #include "ash/wm/system_modal_container_layout_manager.h"
44 #include "ash/wm/toplevel_window_event_handler.h"
45 #include "ash/wm/window_properties.h" 44 #include "ash/wm/window_properties.h"
46 #include "ash/wm/window_state.h" 45 #include "ash/wm/window_state.h"
47 #include "ash/wm/window_util.h" 46 #include "ash/wm/window_util.h"
48 #include "ash/wm/workspace_controller.h" 47 #include "ash/wm/workspace_controller.h"
49 #include "base/command_line.h" 48 #include "base/command_line.h"
50 #include "base/time/time.h" 49 #include "base/time/time.h"
51 #include "ui/aura/client/aura_constants.h" 50 #include "ui/aura/client/aura_constants.h"
52 #include "ui/aura/client/drag_drop_client.h" 51 #include "ui/aura/client/drag_drop_client.h"
53 #include "ui/aura/client/tooltip_client.h" 52 #include "ui/aura/client/tooltip_client.h"
54 #include "ui/aura/root_window.h" 53 #include "ui/aura/root_window.h"
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 lock_background_container->AddChild(mouse_event_target_.get()); 725 lock_background_container->AddChild(mouse_event_target_.get());
727 mouse_event_target_->Show(); 726 mouse_event_target_->Show();
728 } 727 }
729 728
730 // Create Docked windows layout manager 729 // Create Docked windows layout manager
731 aura::Window* docked_container = GetContainer( 730 aura::Window* docked_container = GetContainer(
732 internal::kShellWindowId_DockedContainer); 731 internal::kShellWindowId_DockedContainer);
733 docked_layout_manager_ = 732 docked_layout_manager_ =
734 new internal::DockedWindowLayoutManager(docked_container, 733 new internal::DockedWindowLayoutManager(docked_container,
735 workspace_controller()); 734 workspace_controller());
736 docked_container_handler_.reset(
737 new ToplevelWindowEventHandler(docked_container));
738 docked_container->SetLayoutManager(docked_layout_manager_); 735 docked_container->SetLayoutManager(docked_layout_manager_);
739 736
740 // Create Panel layout manager 737 // Create Panel layout manager
741 aura::Window* panel_container = GetContainer( 738 aura::Window* panel_container = GetContainer(
742 internal::kShellWindowId_PanelContainer); 739 internal::kShellWindowId_PanelContainer);
743 panel_layout_manager_ = 740 panel_layout_manager_ =
744 new internal::PanelLayoutManager(panel_container); 741 new internal::PanelLayoutManager(panel_container);
745 panel_container_handler_.reset(
746 new PanelWindowEventHandler(panel_container));
747 panel_container->SetLayoutManager(panel_layout_manager_); 742 panel_container->SetLayoutManager(panel_layout_manager_);
743 panel_container_handler_.reset(new PanelWindowEventHandler);
744 panel_container->AddPreTargetHandler(panel_container_handler_.get());
748 } 745 }
749 746
750 void RootWindowController::InitTouchHuds() { 747 void RootWindowController::InitTouchHuds() {
751 CommandLine* command_line = CommandLine::ForCurrentProcess(); 748 CommandLine* command_line = CommandLine::ForCurrentProcess();
752 if (command_line->HasSwitch(switches::kAshTouchHud)) 749 if (command_line->HasSwitch(switches::kAshTouchHud))
753 set_touch_hud_debug(new TouchHudDebug(root_window())); 750 set_touch_hud_debug(new TouchHudDebug(root_window()));
754 if (Shell::GetInstance()->is_touch_hud_projection_enabled()) 751 if (Shell::GetInstance()->is_touch_hud_projection_enabled())
755 EnableTouchHudProjection(); 752 EnableTouchHudProjection();
756 } 753 }
757 754
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 kShellWindowId_DefaultContainer, 822 kShellWindowId_DefaultContainer,
826 "DefaultContainer", 823 "DefaultContainer",
827 non_lock_screen_containers); 824 non_lock_screen_containers);
828 views::corewm::SetChildWindowVisibilityChangesAnimated(default_container); 825 views::corewm::SetChildWindowVisibilityChangesAnimated(default_container);
829 SetUsesScreenCoordinates(default_container); 826 SetUsesScreenCoordinates(default_container);
830 827
831 aura::Window* always_on_top_container = CreateContainer( 828 aura::Window* always_on_top_container = CreateContainer(
832 kShellWindowId_AlwaysOnTopContainer, 829 kShellWindowId_AlwaysOnTopContainer,
833 "AlwaysOnTopContainer", 830 "AlwaysOnTopContainer",
834 non_lock_screen_containers); 831 non_lock_screen_containers);
835 always_on_top_container_handler_.reset(
836 new ToplevelWindowEventHandler(always_on_top_container));
837 views::corewm::SetChildWindowVisibilityChangesAnimated( 832 views::corewm::SetChildWindowVisibilityChangesAnimated(
838 always_on_top_container); 833 always_on_top_container);
839 SetUsesScreenCoordinates(always_on_top_container); 834 SetUsesScreenCoordinates(always_on_top_container);
840 835
841 aura::Window* docked_container = CreateContainer( 836 aura::Window* docked_container = CreateContainer(
842 kShellWindowId_DockedContainer, 837 kShellWindowId_DockedContainer,
843 "DockedContainer", 838 "DockedContainer",
844 non_lock_screen_containers); 839 non_lock_screen_containers);
845 views::corewm::SetChildWindowVisibilityChangesAnimated(docked_container); 840 views::corewm::SetChildWindowVisibilityChangesAnimated(docked_container);
846 SetUsesScreenCoordinates(docked_container); 841 SetUsesScreenCoordinates(docked_container);
(...skipping 21 matching lines...) Expand all
868 aura::Window* app_list_container = 863 aura::Window* app_list_container =
869 CreateContainer(kShellWindowId_AppListContainer, 864 CreateContainer(kShellWindowId_AppListContainer,
870 "AppListContainer", 865 "AppListContainer",
871 non_lock_screen_containers); 866 non_lock_screen_containers);
872 SetUsesScreenCoordinates(app_list_container); 867 SetUsesScreenCoordinates(app_list_container);
873 868
874 aura::Window* modal_container = CreateContainer( 869 aura::Window* modal_container = CreateContainer(
875 kShellWindowId_SystemModalContainer, 870 kShellWindowId_SystemModalContainer,
876 "SystemModalContainer", 871 "SystemModalContainer",
877 non_lock_screen_containers); 872 non_lock_screen_containers);
878 modal_container_handler_.reset(
879 new ToplevelWindowEventHandler(modal_container));
880 modal_container->SetLayoutManager( 873 modal_container->SetLayoutManager(
881 new SystemModalContainerLayoutManager(modal_container)); 874 new SystemModalContainerLayoutManager(modal_container));
882 views::corewm::SetChildWindowVisibilityChangesAnimated(modal_container); 875 views::corewm::SetChildWindowVisibilityChangesAnimated(modal_container);
883 SetUsesScreenCoordinates(modal_container); 876 SetUsesScreenCoordinates(modal_container);
884 877
885 aura::Window* input_method_container = CreateContainer( 878 aura::Window* input_method_container = CreateContainer(
886 kShellWindowId_InputMethodContainer, 879 kShellWindowId_InputMethodContainer,
887 "InputMethodContainer", 880 "InputMethodContainer",
888 non_lock_screen_containers); 881 non_lock_screen_containers);
889 views::corewm::SetChildWindowVisibilityChangesAnimated( 882 views::corewm::SetChildWindowVisibilityChangesAnimated(
890 input_method_container); 883 input_method_container);
891 SetUsesScreenCoordinates(input_method_container); 884 SetUsesScreenCoordinates(input_method_container);
892 885
893 // TODO(beng): Figure out if we can make this use 886 // TODO(beng): Figure out if we can make this use
894 // SystemModalContainerEventFilter instead of stops_event_propagation. 887 // SystemModalContainerEventFilter instead of stops_event_propagation.
895 aura::Window* lock_container = CreateContainer( 888 aura::Window* lock_container = CreateContainer(
896 kShellWindowId_LockScreenContainer, 889 kShellWindowId_LockScreenContainer,
897 "LockScreenContainer", 890 "LockScreenContainer",
898 lock_screen_containers); 891 lock_screen_containers);
899 lock_container->SetLayoutManager( 892 lock_container->SetLayoutManager(
900 new BaseLayoutManager(root_window)); 893 new BaseLayoutManager(root_window));
901 SetUsesScreenCoordinates(lock_container); 894 SetUsesScreenCoordinates(lock_container);
902 // TODO(beng): stopsevents 895 // TODO(beng): stopsevents
903 896
904 aura::Window* lock_modal_container = CreateContainer( 897 aura::Window* lock_modal_container = CreateContainer(
905 kShellWindowId_LockSystemModalContainer, 898 kShellWindowId_LockSystemModalContainer,
906 "LockSystemModalContainer", 899 "LockSystemModalContainer",
907 lock_screen_containers); 900 lock_screen_containers);
908 lock_modal_container_handler_.reset(
909 new ToplevelWindowEventHandler(lock_modal_container));
910 lock_modal_container->SetLayoutManager( 901 lock_modal_container->SetLayoutManager(
911 new SystemModalContainerLayoutManager(lock_modal_container)); 902 new SystemModalContainerLayoutManager(lock_modal_container));
912 views::corewm::SetChildWindowVisibilityChangesAnimated(lock_modal_container); 903 views::corewm::SetChildWindowVisibilityChangesAnimated(lock_modal_container);
913 SetUsesScreenCoordinates(lock_modal_container); 904 SetUsesScreenCoordinates(lock_modal_container);
914 905
915 aura::Window* status_container = 906 aura::Window* status_container =
916 CreateContainer(kShellWindowId_StatusContainer, 907 CreateContainer(kShellWindowId_StatusContainer,
917 "StatusContainer", 908 "StatusContainer",
918 lock_screen_related_containers); 909 lock_screen_related_containers);
919 SetUsesScreenCoordinates(status_container); 910 SetUsesScreenCoordinates(status_container);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 DisableTouchHudProjection(); 966 DisableTouchHudProjection();
976 } 967 }
977 968
978 RootWindowController* GetRootWindowController( 969 RootWindowController* GetRootWindowController(
979 const aura::Window* root_window) { 970 const aura::Window* root_window) {
980 return root_window ? GetRootWindowSettings(root_window)->controller : NULL; 971 return root_window ? GetRootWindowSettings(root_window)->controller : NULL;
981 } 972 }
982 973
983 } // namespace internal 974 } // namespace internal
984 } // namespace ash 975 } // namespace ash
OLDNEW
« no previous file with comments | « ash/root_window_controller.h ('k') | ash/shell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698