Index: chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
index da01b7d59ef02b9b3a21bbd19c7d47706938da03..5bf37a08231a264ea7804847731671bc751f9c02 100644 |
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc |
@@ -68,6 +68,7 @@ WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) |
set_should_emit_login_prompt_visible(false); |
ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); |
ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this); |
+ ash::Shell::GetScreen()->AddObserver(this); |
DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); |
if (keyboard::KeyboardController::GetInstance()) { |
@@ -155,6 +156,7 @@ void WebUIScreenLocker::FocusUserPod() { |
WebUIScreenLocker::~WebUIScreenLocker() { |
DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); |
+ ash::Shell::GetScreen()->RemoveObserver(this); |
ash::Shell::GetInstance()-> |
lock_state_controller()->RemoveObserver(this); |
@@ -368,4 +370,29 @@ void WebUIScreenLocker::OnKeyboardBoundsChanging( |
keyboard_bounds_ = new_bounds; |
} |
+//////////////////////////////////////////////////////////////////////////////// |
+// gfx::DisplayObserver implementation: |
+ |
+void WebUIScreenLocker::OnDisplayAdded(const gfx::Display& new_display) { |
+} |
+ |
+void WebUIScreenLocker::OnDisplayRemoved(const gfx::Display& old_display) { |
+} |
+ |
+void WebUIScreenLocker::OnDisplayMetricsChanged(const gfx::Display& display, |
+ uint32_t changed_metrics) { |
+ gfx::Display primary_display = |
+ gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
+ if (display.id() != primary_display.id() || |
+ !(changed_metrics & DISPLAY_METRIC_BOUNDS)) { |
+ return; |
+ } |
+ |
+ if (GetOobeUI()) { |
+ const gfx::Size& size = primary_display.size(); |
+ GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(), |
+ size.height()); |
+ } |
+} |
+ |
} // namespace chromeos |