Index: ash/shell.cc |
diff --git a/ash/shell.cc b/ash/shell.cc |
index d3b19197b4b57628c162577e6925f8346705f154..3df2aae03d2cacfc73db4a02074d3e0ebbfb2625 100644 |
--- a/ash/shell.cc |
+++ b/ash/shell.cc |
@@ -655,6 +655,7 @@ void Shell::Init() { |
DCHECK_EQ(1U, GetRootWindowEventFilterCount()); |
partial_screenshot_filter_.reset(new internal::PartialScreenshotEventFilter); |
AddRootWindowEventFilter(partial_screenshot_filter_.get()); |
+ AddShellObserver(partial_screenshot_filter_.get()); |
// Then AcceleratorFilter and InputMethodEventFilter must be added (in this |
// order) since they have the second highest priority. |
@@ -770,6 +771,7 @@ void Shell::Init() { |
drag_drop_controller_.reset(new internal::DragDropController); |
power_button_controller_.reset(new PowerButtonController); |
+ AddShellObserver(power_button_controller_.get()); |
video_detector_.reset(new VideoDetector); |
window_cycle_controller_.reset(new WindowCycleController); |
monitor_controller_.reset(new internal::MonitorController); |
@@ -858,6 +860,19 @@ void Shell::SetMonitorWorkAreaInsets(Window* contains, |
OnMonitorWorkAreaInsetsChanged()); |
} |
+void Shell::OnLoginStateChange(bool logged_in, bool is_guest) { |
+ FOR_EACH_OBSERVER(ShellObserver, observers_, |
+ OnLoginStateChange(logged_in, is_guest)); |
+} |
+ |
+void Shell::OnExit() { |
+ FOR_EACH_OBSERVER(ShellObserver, observers_, OnExit()); |
+} |
+ |
+void Shell::OnLockStateChange(bool locked) { |
+ FOR_EACH_OBSERVER(ShellObserver, observers_, OnLockStateChange(locked)); |
+} |
+ |
void Shell::CreateLauncher() { |
if (launcher_.get()) |
return; |