Index: chrome/browser/chromeos/login/lock/screen_locker.cc |
diff --git a/chrome/browser/chromeos/login/lock/screen_locker.cc b/chrome/browser/chromeos/login/lock/screen_locker.cc |
index 47eea7e0fcfb594dde1365ee3cff2912a8ff6806..e92e1e95625915f126a9d8f4700212a1051628e6 100644 |
--- a/chrome/browser/chromeos/login/lock/screen_locker.cc |
+++ b/chrome/browser/chromeos/login/lock/screen_locker.cc |
@@ -206,8 +206,7 @@ void ScreenLocker::OnAuthSuccess(const UserContext& user_context) { |
user_manager::UserManager::Get()->FindUser(user_context.GetUserID()); |
if (user) { |
if (user->is_active()) { |
- DCHECK(saved_ime_state_); |
- input_method::InputMethodManager::Get()->SetState(saved_ime_state_); |
+ saved_ime_state_ = NULL; |
Alexander Alekseev
2014/09/01 13:57:06
If user is active, we actually _need_ to set activ
|
} else { |
user_manager::UserManager::Get()->SwitchActiveUser( |
user_context.GetUserID()); |
@@ -215,7 +214,6 @@ void ScreenLocker::OnAuthSuccess(const UserContext& user_context) { |
} else { |
NOTREACHED() << "Logged in user not found."; |
} |
- saved_ime_state_ = NULL; |
authentication_capture_.reset(new AuthenticationParametersCapture()); |
authentication_capture_->user_context = user_context; |
@@ -463,6 +461,10 @@ ScreenLocker::~ScreenLocker() { |
VLOG(1) << "Calling session manager's HandleLockScreenDismissed D-Bus method"; |
DBusThreadManager::Get()->GetSessionManagerClient()-> |
NotifyLockScreenDismissed(); |
+ |
+ if (saved_ime_state_) { |
+ input_method::InputMethodManager::Get()->SetState(saved_ime_state_); |
+ } |
} |
void ScreenLocker::SetAuthenticator(Authenticator* authenticator) { |