From 79b01b18dadc7541ff326de24a2f6be5a39b239d Mon Sep 17 00:00:00 2001 From: "kinaba@chromium.org" Date: Fri, 1 Jul 2011 09:16:28 +0000 Subject: Correct sizing of the screenlock dialog of ChromeOS with screensavers. BUG=chromium-os:15213 TEST=Boot chromeos-chrome with screensaver enabled, and lock the screen. Verify that the edge of the password field is correctly drawn. Review URL: http://codereview.chromium.org/7273021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91279 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/chromeos/login/background_view.h | 4 +++- chrome/browser/chromeos/login/screen_lock_view.cc | 1 - chrome/browser/chromeos/login/screen_locker.cc | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/chrome/browser/chromeos/login/background_view.h b/chrome/browser/chromeos/login/background_view.h index 4fa4d97..193ded2 100644 --- a/chrome/browser/chromeos/login/background_view.h +++ b/chrome/browser/chromeos/login/background_view.h @@ -101,9 +101,11 @@ class BackgroundView : public views::View, // Tells if screen saver is enabled. bool ScreenSaverEnabled(); - protected: // Overridden from views::View: virtual void Layout() OVERRIDE; + + protected: + // Overridden from views::View: virtual void ChildPreferredSizeChanged(View* child) OVERRIDE; virtual void OnLocaleChanged() OVERRIDE; diff --git a/chrome/browser/chromeos/login/screen_lock_view.cc b/chrome/browser/chromeos/login/screen_lock_view.cc index 2acc316..8ffd17e 100644 --- a/chrome/browser/chromeos/login/screen_lock_view.cc +++ b/chrome/browser/chromeos/login/screen_lock_view.cc @@ -208,7 +208,6 @@ gfx::Rect ScreenLockView::GetPasswordBoundsRelativeTo(const views::View* view) { return gfx::Rect(p, size()); } - void ScreenLockView::SetEnabled(bool enabled) { views::View::SetEnabled(enabled); diff --git a/chrome/browser/chromeos/login/screen_locker.cc b/chrome/browser/chromeos/login/screen_locker.cc index 15c7d09..ef595af 100644 --- a/chrome/browser/chromeos/login/screen_locker.cc +++ b/chrome/browser/chromeos/login/screen_locker.cc @@ -1193,11 +1193,14 @@ void ScreenLocker::ShowErrorBubble(const std::wstring& message, void ScreenLocker::StopScreenSaver() { if (background_view_->IsScreenSaverVisible()) { VLOG(1) << "StopScreenSaver"; - background_view_->HideScreenSaver(); if (screen_lock_view_) { screen_lock_view_->SetVisible(true); + // Place the screen_lock_view_ to the center of the screen. + // Must be called when the view is visible: crosbug.com/15213. + background_view_->Layout(); screen_lock_view_->RequestFocus(); } + background_view_->HideScreenSaver(); EnableInput(); } } -- cgit v1.1