| Index: ash/shell.cc
|
| diff --git a/ash/shell.cc b/ash/shell.cc
|
| index fdc5bff17f49f274f7a740f5bca8ececc8a56868..6c05ecc6534cd9f2d0189da8c53a77d9f2894dbd 100644
|
| --- a/ash/shell.cc
|
| +++ b/ash/shell.cc
|
| @@ -1239,6 +1239,15 @@ void Shell::OnSessionStateChanged(session_manager::SessionState state) {
|
| // multiple times (e.g. initial login vs. multiprofile add session).
|
| if (state == session_manager::SessionState::ACTIVE) {
|
| InitializeShelf();
|
| + }
|
| + // Recreates keyboard on user profile change, to refresh keyboard
|
| + // extensions with the new profile and the extensions call proper IME.
|
| + // |LOGGED_IN_NOT_ACTIVE| is needed so that the virtual keyboard works on
|
| + // supervised user creation. crbug.com/712873
|
| + // |ACTIVE| is also needed for guest user workflow.
|
| + if ((state == session_manager::SessionState::LOGGED_IN_NOT_ACTIVE ||
|
| + state == session_manager::SessionState::ACTIVE) &&
|
| + keyboard::IsKeyboardEnabled()) {
|
| if (GetAshConfig() != Config::MASH) {
|
| // Recreate the keyboard after initial login and after multiprofile login.
|
| CreateKeyboard();
|
|
|