summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 23:28:29 +0000
committerdbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 23:28:29 +0000
commit980fe85bf5ca523ba6030091fb80e52bd0da5967 (patch)
tree2f138a91764d256922104d3aecc8f92b8634e927
parentd165dc77beb36482ec850095a3d18e512a3ede72 (diff)
downloadchromium_src-980fe85bf5ca523ba6030091fb80e52bd0da5967.zip
chromium_src-980fe85bf5ca523ba6030091fb80e52bd0da5967.tar.gz
chromium_src-980fe85bf5ca523ba6030091fb80e52bd0da5967.tar.bz2
[uber page] Migrate the virtual keyboard sub-page to a dialog
This also fixes a bug in OptionPage.getVisibleOverlay_ that assumes the first overlay we find that's visible is the showing overlay (but doesn't account for the nesting level of that overlay) as well as a language overlay confirm bug. BUG=111685 TEST=./build/gyp_chromium -Duse_virtual_keyboard=1 -Dchromeos=1 -Duse_ibus=0 -Duse_aura=1 and open Advanced > Language settings > Keyboard and then actually close language settings. Review URL: http://codereview.chromium.org/9386032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121965 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/resources/options2/chromeos/virtual_keyboard.html23
-rw-r--r--chrome/browser/resources/options2/chromeos/virtual_keyboard.js4
-rw-r--r--chrome/browser/resources/options2/language_options.js7
-rw-r--r--chrome/browser/resources/options2/options.html6
-rw-r--r--chrome/browser/resources/options2/options.js17
-rw-r--r--chrome/browser/resources/options2/options_page.js9
6 files changed, 37 insertions, 29 deletions
diff --git a/chrome/browser/resources/options2/chromeos/virtual_keyboard.html b/chrome/browser/resources/options2/chromeos/virtual_keyboard.html
index 93a4f46..33e52ee 100644
--- a/chrome/browser/resources/options2/chromeos/virtual_keyboard.html
+++ b/chrome/browser/resources/options2/chromeos/virtual_keyboard.html
@@ -1,13 +1,20 @@
<div id="virtual-keyboard-manager" class="page" hidden>
- <header><h1 i18n-content="virtualKeyboardPage"></h1></header>
- <div class="virtual-keyboard-column-headers">
- <div class="virtual-keyboard-layout-column">
- <h3 i18n-content="virtualKeyboardLayoutColumnTitle"></h3>
+ <h1 i18n-content="virtualKeyboardPage"></h1>
+ <div class="content-area">
+ <div class="virtual-keyboard-column-headers">
+ <div class="virtual-keyboard-layout-column">
+ <h3 i18n-content="virtualKeyboardLayoutColumnTitle"></h3>
+ </div>
+ <div class="virtual-keyboard-keyboard-column">
+ <h3 i18n-content="virtualKeyboardKeyboardColumnTitle"></h3>
+ </div>
</div>
- <div class="virtual-keyboard-keyboard-column">
- <h3 i18n-content="virtualKeyboardKeyboardColumnTitle"></h3>
+ <list id="virtual-keyboard-per-layout-list"></list>
+ <!-- TODO(yusukes): Add virtual-keyboards-per-site elements. -->
+ </div>
+ <div class="action-area">
+ <div class="button-strip">
+ <button id="virtual-keyboard-overlay-confirm" i18n-content="ok"></button>
</div>
</div>
- <list id="virtual-keyboard-per-layout-list"></list>
- <!-- TODO(yusukes): Add virtual-keyboards-per-site elements. -->
</div>
diff --git a/chrome/browser/resources/options2/chromeos/virtual_keyboard.js b/chrome/browser/resources/options2/chromeos/virtual_keyboard.js
index 359d190..992ecf7 100644
--- a/chrome/browser/resources/options2/chromeos/virtual_keyboard.js
+++ b/chrome/browser/resources/options2/chromeos/virtual_keyboard.js
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -38,6 +38,8 @@ cr.define('options', function() {
initializePage: function() {
OptionsPage.prototype.initializePage.call(this);
this.createVirtualKeyboardsList_();
+ $('virtual-keyboard-overlay-confirm').onclick =
+ OptionsPage.closeOverlay.bind(OptionsPage);
},
/** @inheritDoc */
diff --git a/chrome/browser/resources/options2/language_options.js b/chrome/browser/resources/options2/language_options.js
index 8a847f0..7a58624 100644
--- a/chrome/browser/resources/options2/language_options.js
+++ b/chrome/browser/resources/options2/language_options.js
@@ -102,12 +102,11 @@ cr.define('options', function() {
this.enableSpellCheckPref,
this.updateEnableSpellCheck_.bind(this));
}
-
- $('language-confirm').onclick = function() {
- OptionsPage.closeOverlay();
- };
}
+ $('language-confirm').onclick =
+ OptionsPage.closeOverlay.bind(OptionsPage);
+
// Listen to user clicks on the "Change touch keyboard settings..."
// button (if it exists).
var virtualKeyboardButton = $('language-options-virtual-keyboard');
diff --git a/chrome/browser/resources/options2/options.html b/chrome/browser/resources/options2/options.html
index c8b424f..67f8d58 100644
--- a/chrome/browser/resources/options2/options.html
+++ b/chrome/browser/resources/options2/options.html
@@ -117,6 +117,9 @@
<include src="chromeos/language_mozc_options.html">
<include src="chromeos/language_pinyin_options.html">
</if>
+ <if expr="pp_ifdef('chromeos') and pp_ifdef('use_virtual_keyboard')">
+ <include src="chromeos/virtual_keyboard.html">
+ </if>
<if expr="not pp_ifdef('win32') and not pp_ifdef('darwin')">
<include src="certificate_restore_overlay.html">
<include src="certificate_backup_overlay.html">
@@ -160,9 +163,6 @@
<div id="subpage-sheet-3" class="subpage-sheet">
<button class="raw-button close-subpage custom-appearance"></button>
<div class="subpage-sheet-contents">
- <if expr="pp_ifdef('chromeos') and pp_ifdef('use_virtual_keyboard')">
- <include src="chromeos/virtual_keyboard.html">
- </if>
<include src="cookies_view.html">
<if expr="pp_ifdef('enable_register_protocol_handler')">
<include src="handler_options.html">
diff --git a/chrome/browser/resources/options2/options.js b/chrome/browser/resources/options2/options.js
index d2a0db5..50fa893 100644
--- a/chrome/browser/resources/options2/options.js
+++ b/chrome/browser/resources/options2/options.js
@@ -77,16 +77,6 @@ function load() {
AdvancedOptions.getInstance(),
[$('privacyContentSettingsButton')]);
- if (cr.isChromeOS) {
- // Only use the VirtualKeyboardManager if the keyboard DOM elements (which
- // it will assume exists) are present (i.e. if we were built with
- // USE_VIRTUAL_KEYBOARD).
- if ($('language-options-virtual-keyboard')) {
- OptionsPage.registerSubPage(VirtualKeyboardManager.getInstance(),
- LanguageOptions.getInstance());
- }
- }
-
// ContentSettings sub-pages.
OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(),
ContentSettings.getInstance());
@@ -197,6 +187,13 @@ function load() {
templateData.languagePinyinPageTabTitle,
'languagePinyinPage'),
LanguageOptions.getInstance());
+ // Only use the VirtualKeyboardManager if the keyboard DOM elements (which
+ // it will assume exists) are present (i.e. if we were built with
+ // use_virtual_keyboard=1).
+ if ($('language-options-virtual-keyboard')) {
+ OptionsPage.registerOverlay(VirtualKeyboardManager.getInstance(),
+ LanguageOptions.getInstance());
+ }
}
if (!cr.isWindows && !cr.isMac) {
OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(),
diff --git a/chrome/browser/resources/options2/options_page.js b/chrome/browser/resources/options2/options_page.js
index 7b16dcc..5c9f60d 100644
--- a/chrome/browser/resources/options2/options_page.js
+++ b/chrome/browser/resources/options2/options_page.js
@@ -294,12 +294,15 @@ cr.define('options', function() {
* @return {OptionPage} The visible overlay.
*/
OptionsPage.getVisibleOverlay_ = function() {
+ var topmostPage = null;
for (var name in this.registeredOverlayPages) {
var page = this.registeredOverlayPages[name];
- if (page.visible)
- return page;
+ if (page.visible &&
+ (!topmostPage || page.nestingLevel > topmostPage.nestingLevel)) {
+ topmostPage = page;
+ }
}
- return null;
+ return topmostPage;
};
/**