summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorpenghuang@chromium.org <penghuang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 01:44:23 +0000
committerpenghuang@chromium.org <penghuang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 01:44:23 +0000
commitbb07ab07ab242f31c549f6b30310eade0754bd8e (patch)
tree62394f67b254595d5a599325f60eb2f763aad636 /chrome
parente0f5d4ce144375c4b55eca8a091e84dbdcb09861 (diff)
downloadchromium_src-bb07ab07ab242f31c549f6b30310eade0754bd8e.zip
chromium_src-bb07ab07ab242f31c549f6b30310eade0754bd8e.tar.gz
chromium_src-bb07ab07ab242f31c549f6b30310eade0754bd8e.tar.bz2
Switch virtual keyboard mode base on type of the current focused input field.
BUG=Virtual keyboard shouldn't remember state across different text fields. TEST=Linux desktop Review URL: http://codereview.chromium.org/7508025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98165 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/resources/keyboard/main.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/chrome/browser/resources/keyboard/main.js b/chrome/browser/resources/keyboard/main.js
index 0751654..3c77bc7 100644
--- a/chrome/browser/resources/keyboard/main.js
+++ b/chrome/browser/resources/keyboard/main.js
@@ -165,14 +165,26 @@ window.onload = function() {
window.onhashchange();
- // Restore the keyboard to the default state when it is hidden.
- // Ref: dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html
- document.addEventListener("webkitvisibilitychange", function() {
- if (document.webkitHidden) {
- currentMode = SHIFT_MODE;
- setMode(currentMode);
+ chrome.experimental.input.onTextInputTypeChanged.addListener(function(type) {
+ switch(type) {
+ case "text":
+ currentMode = SHIFT_MODE;
+ break;
+ case "password":
+ case "search":
+ case "url":
+ currentMode = KEY_MODE;
+ break;
+ case "number":
+ case "tel":
+ currentMode = NUMBER_MODE;
+ break;
+ default:
+ currentMode = KEY_MODE;
+ break;
}
- }, false);
+ setMode(currentMode);
+ });
}
// TODO(bryeung): would be nice to leave less gutter (without causing
// rendering issues with floated divs wrapping at some sizes).