diff options
author | penghuang@chromium.org <penghuang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-25 01:44:23 +0000 |
---|---|---|
committer | penghuang@chromium.org <penghuang@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-25 01:44:23 +0000 |
commit | bb07ab07ab242f31c549f6b30310eade0754bd8e (patch) | |
tree | 62394f67b254595d5a599325f60eb2f763aad636 /chrome | |
parent | e0f5d4ce144375c4b55eca8a091e84dbdcb09861 (diff) | |
download | chromium_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.js | 26 |
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). |