diff options
author | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 23:28:29 +0000 |
---|---|---|
committer | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 23:28:29 +0000 |
commit | 980fe85bf5ca523ba6030091fb80e52bd0da5967 (patch) | |
tree | 2f138a91764d256922104d3aecc8f92b8634e927 | |
parent | d165dc77beb36482ec850095a3d18e512a3ede72 (diff) | |
download | chromium_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
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; }; /** |