manager->Initialize(SOUND_UNLOCK,
bundle.GetRawDataResource(IDR_SOUND_UNLOCK_WAV));
+#if !defined(USE_ATHENA)
+ // crbug.com/408733
ash::Shell::GetInstance()->
lock_state_controller()->SetLockScreenDisplayedCallback(
base::Bind(base::IgnoreResult(&ash::PlaySystemSoundIfSpokenFeedback),
static_cast<media::SoundsManager::SoundKey>(
chromeos::SOUND_LOCK)));
+#endif
}
void ScreenLocker::Init() {
const user_manager::User* user =
user_manager::UserManager::Get()->FindUser(user_context.GetUserID());
if (user) {
- if (!user->is_active())
+ if (!user->is_active()) {
+ saved_ime_state_ = NULL;
user_manager::UserManager::Get()->SwitchActiveUser(
user_context.GetUserID());
+ }
} else {
NOTREACHED() << "Logged in user not found.";
}
// static
void ScreenLocker::Show() {
+#if defined(USE_ATHENA)
+ // crbug.com/413926
+ return;
+#endif
+
content::RecordAction(UserMetricsAction("ScreenLocker_Show"));
DCHECK(base::MessageLoopForUI::IsCurrent());
// static
void ScreenLocker::Hide() {
+#if defined(USE_ATHENA)
+ // crbug.com/413926
+ return;
+#endif
+
DCHECK(base::MessageLoopForUI::IsCurrent());
// For a guest/demo user, screen_locker_ would have never been initialized.
if (user_manager::UserManager::Get()->IsLoggedInAsGuest() ||
VLOG(1) << "Calling session manager's HandleLockScreenDismissed D-Bus method";
DBusThreadManager::Get()->GetSessionManagerClient()->
NotifyLockScreenDismissed();
+
+ if (saved_ime_state_.get()) {
+ input_method::InputMethodManager::Get()->SetState(saved_ime_state_);
+ }
}
void ScreenLocker::SetAuthenticator(Authenticator* authenticator) {
ash::Shell::GetInstance()->
desktop_background_controller()->MoveDesktopToLockedContainer();
+ input_method::InputMethodManager* imm =
+ input_method::InputMethodManager::Get();
+ saved_ime_state_ = imm->GetActiveIMEState();
+ imm->SetState(saved_ime_state_->Clone());
+ imm->GetActiveIMEState()->EnableLockScreenLayouts();
+
bool state = true;
VLOG(1) << "Emitting SCREEN_LOCK_STATE_CHANGED with state=" << state;
content::NotificationService::current()->Notify(