Index: chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc |
diff --git a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc |
index 61fc8090bda2744cc0f28ad9f0ce679c3bb80aca..332fe1f6ad02ecc2adf08938c8ee300dfc76f7a9 100644 |
--- a/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc |
+++ b/chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_keyboard_delegate.cc |
@@ -6,6 +6,7 @@ |
#include <string> |
+#include "ash/shell.h" |
#include "base/command_line.h" |
#include "base/metrics/histogram.h" |
#include "base/metrics/user_metrics_action.h" |
@@ -58,6 +59,7 @@ bool ChromeVirtualKeyboardDelegate::GetKeyboardConfig( |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
results->SetString("layout", keyboard::GetKeyboardLayout()); |
results->SetBoolean("a11ymode", keyboard::GetAccessibilityKeyboardEnabled()); |
+ results->SetBoolean("hotrodmode", keyboard::GetHotrodKeyboardEnabled()); |
scoped_ptr<base::ListValue> features(new base::ListValue()); |
features->AppendString(GenerateFeatureFlag( |
"floatingvirtualkeyboard", keyboard::IsFloatingVirtualKeyboardEnabled())); |
@@ -102,6 +104,18 @@ bool ChromeVirtualKeyboardDelegate::OnKeyboardLoaded() { |
return true; |
} |
+void ChromeVirtualKeyboardDelegate::SetHotrodKeyboard(bool enable) { |
+ if (keyboard::GetHotrodKeyboardEnabled() == enable) |
+ return; |
+ |
+ keyboard::SetHotrodKeyboardEnabled(enable); |
+ // This reloads virtual keyboard even if it exists. This ensures virtual |
+ // keyboard gets the correct state of the hotrod keyboard through |
+ // chrome.virtualKeyboardPrivate.getKeyboardConfig. |
+ if (enable && keyboard::IsKeyboardEnabled()) |
+ ash::Shell::GetInstance()->CreateKeyboard(); |
+} |
+ |
bool ChromeVirtualKeyboardDelegate::LockKeyboard(bool state) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
keyboard::KeyboardController* controller = |