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

Side by Side Diff: ash/shell.cc

Issue 2918403006: CrOS Tablet Window management - Split Screen part I (Closed)
Patch Set: Address oshima@'s comments Created 3 years, 6 months 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
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 #include <utility> 9 #include <utility>
10 10
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 #include "ash/wm/lock_state_controller.h" 101 #include "ash/wm/lock_state_controller.h"
102 #include "ash/wm/maximize_mode/maximize_mode_controller.h" 102 #include "ash/wm/maximize_mode/maximize_mode_controller.h"
103 #include "ash/wm/maximize_mode/maximize_mode_window_manager.h" 103 #include "ash/wm/maximize_mode/maximize_mode_window_manager.h"
104 #include "ash/wm/mru_window_tracker.h" 104 #include "ash/wm/mru_window_tracker.h"
105 #include "ash/wm/overlay_event_filter.h" 105 #include "ash/wm/overlay_event_filter.h"
106 #include "ash/wm/overview/window_selector_controller.h" 106 #include "ash/wm/overview/window_selector_controller.h"
107 #include "ash/wm/power_button_controller.h" 107 #include "ash/wm/power_button_controller.h"
108 #include "ash/wm/resize_shadow_controller.h" 108 #include "ash/wm/resize_shadow_controller.h"
109 #include "ash/wm/root_window_finder.h" 109 #include "ash/wm/root_window_finder.h"
110 #include "ash/wm/screen_pinning_controller.h" 110 #include "ash/wm/screen_pinning_controller.h"
111 #include "ash/wm/splitview/split_view_controller.h"
111 #include "ash/wm/system_gesture_event_filter.h" 112 #include "ash/wm/system_gesture_event_filter.h"
112 #include "ash/wm/system_modal_container_event_filter.h" 113 #include "ash/wm/system_modal_container_event_filter.h"
113 #include "ash/wm/system_modal_container_layout_manager.h" 114 #include "ash/wm/system_modal_container_layout_manager.h"
114 #include "ash/wm/toplevel_window_event_handler.h" 115 #include "ash/wm/toplevel_window_event_handler.h"
115 #include "ash/wm/video_detector.h" 116 #include "ash/wm/video_detector.h"
116 #include "ash/wm/window_animations.h" 117 #include "ash/wm/window_animations.h"
117 #include "ash/wm/window_cycle_controller.h" 118 #include "ash/wm/window_cycle_controller.h"
118 #include "ash/wm/window_positioner.h" 119 #include "ash/wm/window_positioner.h"
119 #include "ash/wm/window_properties.h" 120 #include "ash/wm/window_properties.h"
120 #include "ash/wm/window_util.h" 121 #include "ash/wm/window_util.h"
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 native_cursor_manager_->SetNativeCursorEnabled(!enabled); 446 native_cursor_manager_->SetNativeCursorEnabled(!enabled);
446 } 447 }
447 } 448 }
448 449
449 void Shell::DoInitialWorkspaceAnimation() { 450 void Shell::DoInitialWorkspaceAnimation() {
450 return GetPrimaryRootWindowController() 451 return GetPrimaryRootWindowController()
451 ->workspace_controller() 452 ->workspace_controller()
452 ->DoInitialAnimation(); 453 ->DoInitialAnimation();
453 } 454 }
454 455
456 bool Shell::IsSplitViewModeActive() const {
457 return split_view_controller_->IsSplitViewModeActive();
458 }
459
455 void Shell::AddShellObserver(ShellObserver* observer) { 460 void Shell::AddShellObserver(ShellObserver* observer) {
456 shell_observers_.AddObserver(observer); 461 shell_observers_.AddObserver(observer);
457 } 462 }
458 463
459 void Shell::RemoveShellObserver(ShellObserver* observer) { 464 void Shell::RemoveShellObserver(ShellObserver* observer) {
460 shell_observers_.RemoveObserver(observer); 465 shell_observers_.RemoveObserver(observer);
461 } 466 }
462 467
463 void Shell::ShowAppList() { 468 void Shell::ShowAppList() {
464 // Show the app list on the default display for new windows. 469 // Show the app list on the default display for new windows.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 void Shell::NotifyOverviewModeStarting() { 515 void Shell::NotifyOverviewModeStarting() {
511 for (auto& observer : shell_observers_) 516 for (auto& observer : shell_observers_)
512 observer.OnOverviewModeStarting(); 517 observer.OnOverviewModeStarting();
513 } 518 }
514 519
515 void Shell::NotifyOverviewModeEnded() { 520 void Shell::NotifyOverviewModeEnded() {
516 for (auto& observer : shell_observers_) 521 for (auto& observer : shell_observers_)
517 observer.OnOverviewModeEnded(); 522 observer.OnOverviewModeEnded();
518 } 523 }
519 524
525 void Shell::NotifySplitViewModeStarting() {
526 for (auto& observer : shell_observers_)
527 observer.OnSplitViewModeStarting();
528 }
529
530 void Shell::NotifySplitViewModeEnded() {
531 for (auto& observer : shell_observers_)
532 observer.OnSplitViewModeEnded();
533 }
534
520 void Shell::NotifyFullscreenStateChanged(bool is_fullscreen, 535 void Shell::NotifyFullscreenStateChanged(bool is_fullscreen,
521 aura::Window* root_window) { 536 aura::Window* root_window) {
522 for (auto& observer : shell_observers_) 537 for (auto& observer : shell_observers_)
523 observer.OnFullscreenStateChanged(is_fullscreen, root_window); 538 observer.OnFullscreenStateChanged(is_fullscreen, root_window);
524 } 539 }
525 540
526 void Shell::NotifyPinnedStateChanged(aura::Window* pinned_window) { 541 void Shell::NotifyPinnedStateChanged(aura::Window* pinned_window) {
527 for (auto& observer : shell_observers_) 542 for (auto& observer : shell_observers_)
528 observer.OnPinnedStateChanged(pinned_window); 543 observer.OnPinnedStateChanged(pinned_window);
529 } 544 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 if (config != Config::MASH) 640 if (config != Config::MASH)
626 user_metrics_recorder_->OnShellShuttingDown(); 641 user_metrics_recorder_->OnShellShuttingDown();
627 642
628 shell_delegate_->PreShutdown(); 643 shell_delegate_->PreShutdown();
629 644
630 // Remove the focus from any window. This will prevent overhead and side 645 // Remove the focus from any window. This will prevent overhead and side
631 // effects (e.g. crashes) from changing focus during shutdown. 646 // effects (e.g. crashes) from changing focus during shutdown.
632 // See bug crbug.com/134502. 647 // See bug crbug.com/134502.
633 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(nullptr); 648 aura::client::GetFocusClient(GetPrimaryRootWindow())->FocusWindow(nullptr);
634 649
635 // Please keep in same order as in Init() because it's easy to miss one. 650 // Please keep in reverse order as in Init() because it's easy to miss one.
651 split_view_controller_.reset();
652
636 if (window_modality_controller_) 653 if (window_modality_controller_)
637 window_modality_controller_.reset(); 654 window_modality_controller_.reset();
638 655
639 RemovePreTargetHandler(magnifier_key_scroll_handler_.get()); 656 RemovePreTargetHandler(magnifier_key_scroll_handler_.get());
640 magnifier_key_scroll_handler_.reset(); 657 magnifier_key_scroll_handler_.reset();
641 658
642 RemovePreTargetHandler(speech_feedback_handler_.get()); 659 RemovePreTargetHandler(speech_feedback_handler_.get());
643 speech_feedback_handler_.reset(); 660 speech_feedback_handler_.reset();
644 661
645 RemovePreTargetHandler(overlay_filter_.get()); 662 RemovePreTargetHandler(overlay_filter_.get());
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 new ui::UserActivityPowerManagerNotifier(user_activity_detector_.get())); 1125 new ui::UserActivityPowerManagerNotifier(user_activity_detector_.get()));
1109 video_activity_notifier_.reset( 1126 video_activity_notifier_.reset(
1110 new VideoActivityNotifier(video_detector_.get())); 1127 new VideoActivityNotifier(video_detector_.get()));
1111 bluetooth_notification_controller_.reset(new BluetoothNotificationController); 1128 bluetooth_notification_controller_.reset(new BluetoothNotificationController);
1112 if (ShouldEnableSimplifiedDisplayManagement()) { 1129 if (ShouldEnableSimplifiedDisplayManagement()) {
1113 screen_orientation_controller_.reset(new ScreenOrientationController()); 1130 screen_orientation_controller_.reset(new ScreenOrientationController());
1114 screen_layout_observer_.reset(new ScreenLayoutObserver()); 1131 screen_layout_observer_.reset(new ScreenLayoutObserver());
1115 } 1132 }
1116 sms_observer_.reset(new SmsObserver()); 1133 sms_observer_.reset(new SmsObserver());
1117 1134
1135 split_view_controller_.reset(new SplitViewController());
1136
1118 // The compositor thread and main message loop have to be running in 1137 // The compositor thread and main message loop have to be running in
1119 // order to create mirror window. Run it after the main message loop 1138 // order to create mirror window. Run it after the main message loop
1120 // is started. 1139 // is started.
1121 if (ShouldEnableSimplifiedDisplayManagement()) 1140 if (ShouldEnableSimplifiedDisplayManagement())
1122 display_manager_->CreateMirrorWindowAsyncIfAny(); 1141 display_manager_->CreateMirrorWindowAsyncIfAny();
1123 1142
1124 for (auto& observer : shell_observers_) 1143 for (auto& observer : shell_observers_)
1125 observer.OnShellInitialized(); 1144 observer.OnShellInitialized();
1126 1145
1127 if (config != Config::MASH) 1146 if (config != Config::MASH)
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 void Shell::OnPrefServiceInitialized( 1302 void Shell::OnPrefServiceInitialized(
1284 std::unique_ptr<::PrefService> pref_service) { 1303 std::unique_ptr<::PrefService> pref_service) {
1285 if (!instance_) 1304 if (!instance_)
1286 return; 1305 return;
1287 // |pref_service_| is null if can't connect to Chrome (as happens when 1306 // |pref_service_| is null if can't connect to Chrome (as happens when
1288 // running mash outside of chrome --mash and chrome isn't built). 1307 // running mash outside of chrome --mash and chrome isn't built).
1289 pref_service_ = std::move(pref_service); 1308 pref_service_ = std::move(pref_service);
1290 } 1309 }
1291 1310
1292 } // namespace ash 1311 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell.h ('k') | ash/shell_observer.h » ('j') | ash/wm/overview/overview_animation_type.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698