Index: chrome/browser/chromeos/login/screen_lock_view.cc |
diff --git a/chrome/browser/chromeos/login/screen_lock_view.cc b/chrome/browser/chromeos/login/screen_lock_view.cc |
index 69a270b875f809d624d19f9cceb4749c9dfeb287..388b48a82ead44d5707e2c49ab85c015c44357d4 100644 |
--- a/chrome/browser/chromeos/login/screen_lock_view.cc |
+++ b/chrome/browser/chromeos/login/screen_lock_view.cc |
@@ -63,10 +63,14 @@ ScreenLockView::ScreenLockView(ScreenLocker* screen_locker) |
password_field_(NULL), |
screen_locker_(screen_locker), |
main_(NULL), |
- username_(NULL) { |
+ username_(NULL), |
+ throbber_manager_(new ThrobberManager()) { |
DCHECK(screen_locker_); |
} |
+ScreenLockView::~ScreenLockView() { |
+} |
+ |
gfx::Size ScreenLockView::GetPreferredSize() { |
return main_->GetPreferredSize(); |
} |
@@ -160,11 +164,23 @@ gfx::Rect ScreenLockView::GetPasswordBoundsRelativeTo(const views::View* view) { |
return gfx::Rect(p, size()); |
} |
+void ScreenLockView::StartThrobber() { |
+ if (password_field_->GetWidget()) { |
+ throbber_manager_->CreateAndStart(password_field_->GetWidget(), |
+ CreateDefaultSmoothedThrobber(), |
+ login::kThrobberRightMargin); |
+ } |
+} |
+ |
+void ScreenLockView::StopThrobber() { |
+ throbber_manager_->StopAndClose(); |
+} |
+ |
+ |
void ScreenLockView::SetEnabled(bool enabled) { |
views::View::SetEnabled(enabled); |
if (!enabled) { |
- user_view_->StartThrobber(); |
// TODO(oshima): Re-enabling does not move the focus to the view |
// that had a focus (issue http://crbug.com/43131). |
// Clear focus on the textfield so that re-enabling can set focus |
@@ -173,8 +189,6 @@ void ScreenLockView::SetEnabled(bool enabled) { |
// associated Widget yet. |
if (password_field_->GetFocusManager()) |
password_field_->GetFocusManager()->ClearFocus(); |
- } else { |
- user_view_->StopThrobber(); |
} |
password_field_->SetEnabled(enabled); |
} |
@@ -213,4 +227,5 @@ void ScreenLockView::ViewHierarchyChanged(bool is_add, |
if (is_add && this == child) |
WizardAccessibilityHelper::GetInstance()->MaybeEnableAccessibility(this); |
} |
+ |
} // namespace chromeos |