diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 04:32:35 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 04:32:35 +0000 |
commit | 5a7a583e86a3503c00a8e07e0b5f315c6a11a03f (patch) | |
tree | a61037a234db92147b0614fe7cdddd64b090805b | |
parent | 9b17389d8b282fdec7763094e12ee6c1eb43cdee (diff) | |
download | chromium_src-5a7a583e86a3503c00a8e07e0b5f315c6a11a03f.zip chromium_src-5a7a583e86a3503c00a8e07e0b5f315c6a11a03f.tar.gz chromium_src-5a7a583e86a3503c00a8e07e0b5f315c6a11a03f.tar.bz2 |
Revert "Make most shotcut keys take effect on the keyboard overlay."
This reverts commit 9a675193fe08ff3dcdf089ace0e61d21dd14856b.
TBR=tfarina@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81700 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/views/frame/browser_view.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/html_dialog_view.cc | 5 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_delegate.cc | 23 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_delegate.h | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_dialog_view.cc | 118 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_dialog_view.h | 48 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 5 |
7 files changed, 32 insertions, 175 deletions
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 3b8d045..b7c7662 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -103,7 +103,7 @@ #endif #if defined(OS_CHROMEOS) -#include "chrome/browser/ui/views/keyboard_overlay_dialog_view.h" +#include "chrome/browser/ui/views/keyboard_overlay_delegate.h" #endif using base::TimeDelta; @@ -1186,7 +1186,7 @@ gfx::Rect BrowserView::GetInstantBounds() { #if defined(OS_CHROMEOS) void BrowserView::ShowKeyboardOverlay(gfx::NativeWindow owning_window) { - KeyboardOverlayDialogView::ShowDialog(owning_window, this); + KeyboardOverlayDelegate::ShowDialog(owning_window); } #endif diff --git a/chrome/browser/ui/views/html_dialog_view.cc b/chrome/browser/ui/views/html_dialog_view.cc index 3887b6d..b922217 100644 --- a/chrome/browser/ui/views/html_dialog_view.cc +++ b/chrome/browser/ui/views/html_dialog_view.cc @@ -59,8 +59,9 @@ gfx::Size HtmlDialogView::GetPreferredSize() { } bool HtmlDialogView::AcceleratorPressed(const views::Accelerator& accelerator) { - // Pressing ESC closes the dialog. - DCHECK_EQ(ui::VKEY_ESCAPE, accelerator.GetKeyCode()); + // Pressing Esc, Ctrl+Alt+/, or Ctrl+Alt+? closes the keyboard overlay. + DCHECK(ui::VKEY_ESCAPE == accelerator.GetKeyCode() || + ui::VKEY_OEM_2 == accelerator.GetKeyCode()); OnDialogClosed(std::string()); return true; } diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.cc b/chrome/browser/ui/views/keyboard_overlay_delegate.cc index 8d0f4ad..e12c75e 100644 --- a/chrome/browser/ui/views/keyboard_overlay_delegate.cc +++ b/chrome/browser/ui/views/keyboard_overlay_delegate.cc @@ -8,6 +8,9 @@ #include "base/memory/scoped_ptr.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/chromeos/frame/bubble_window.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/views/html_dialog_view.h" #include "chrome/browser/ui/webui/html_dialog_ui.h" #include "chrome/common/url_constants.h" @@ -20,6 +23,26 @@ static const int kBaseWidth = 1252; static const int kBaseHeight = 516; static const int kHorizontalMargin = 28; +void KeyboardOverlayDelegate::ShowDialog(gfx::NativeWindow owning_window) { + Browser* browser = BrowserList::GetLastActive(); + KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate( + UTF16ToWide(l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE))); + HtmlDialogView* html_view = + new HtmlDialogView(browser->profile(), delegate); + delegate->set_view(html_view); + html_view->InitDialog(); + html_view->AddAccelerator( + views::Accelerator(ui::VKEY_OEM_2, false, true, true)); + html_view->AddAccelerator( + views::Accelerator(ui::VKEY_OEM_2, true, true, true)); + + chromeos::BubbleWindow::Create(owning_window, + gfx::Rect(), + chromeos::BubbleWindow::STYLE_XSHAPE, + html_view); + html_view->window()->Show(); +} + KeyboardOverlayDelegate::KeyboardOverlayDelegate( const std::wstring& title) : title_(title), diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.h b/chrome/browser/ui/views/keyboard_overlay_delegate.h index 207f69b..bb48638 100644 --- a/chrome/browser/ui/views/keyboard_overlay_delegate.h +++ b/chrome/browser/ui/views/keyboard_overlay_delegate.h @@ -6,6 +6,7 @@ #define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_ #include "chrome/browser/ui/webui/html_dialog_ui.h" +#include "ui/gfx/native_widget_types.h" class HtmlDialogView; @@ -14,6 +15,9 @@ class KeyboardOverlayDelegate : public HtmlDialogUIDelegate { public: explicit KeyboardOverlayDelegate(const std::wstring& title); + // Shows the keyboard overlay dialog box. + static void ShowDialog(gfx::NativeWindow owning_window); + void set_view(HtmlDialogView* html_view) { view_ = html_view; } diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc deleted file mode 100644 index 659dfec..0000000 --- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2011 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. - -#include "chrome/browser/ui/views/keyboard_overlay_dialog_view.h" - -#include "chrome/browser/chromeos/frame/bubble_window.h" -#include "chrome/browser/ui/browser_dialogs.h" -#include "chrome/browser/ui/views/accelerator_table_gtk.h" -#include "chrome/browser/ui/views/frame/browser_view.h" -#include "chrome/browser/ui/views/keyboard_overlay_delegate.h" -#include "chrome/browser/ui/views/window.h" -#include "content/browser/tab_contents/tab_contents.h" -#include "content/common/native_web_keyboard_event.h" -#include "grit/generated_resources.h" -#include "ui/base/keycodes/keyboard_codes.h" -#include "ui/base/l10n/l10n_util.h" -#include "views/events/event.h" -#include "views/widget/root_view.h" -#include "views/widget/widget.h" -#include "views/window/window.h" - -#if defined(OS_LINUX) -#include "views/window/window_gtk.h" -#endif - -namespace { -struct Accelerator { - ui::KeyboardCode keycode; - bool shift_pressed; - bool ctrl_pressed; - bool alt_pressed; -} kCloseAccelerators[] = { - {ui::VKEY_OEM_2, false, true, true}, - {ui::VKEY_OEM_2, true, true, true}, - {ui::VKEY_ESCAPE, true, false, false}, -}; -} // namespace - -KeyboardOverlayDialogView::KeyboardOverlayDialogView( - Profile* profile, - HtmlDialogUIDelegate* delegate, - BrowserView* parent_view) - : HtmlDialogView(profile, delegate), - parent_view_(parent_view) { -} - -KeyboardOverlayDialogView::~KeyboardOverlayDialogView() { -} - -void KeyboardOverlayDialogView::InitDialog() { - DOMView::Init(profile(), NULL); - - tab_contents_->set_delegate(this); - - // Set the delegate. This must be done before loading the page. See - // the comment above HtmlDialogUI in its header file for why. - HtmlDialogUI::GetPropertyAccessor().SetProperty(tab_contents_->property_bag(), - this); - - for (size_t i = 0; i < arraysize(kCloseAccelerators); ++i) { - views::Accelerator accelerator(kCloseAccelerators[i].keycode, - kCloseAccelerators[i].shift_pressed, - kCloseAccelerators[i].ctrl_pressed, - kCloseAccelerators[i].alt_pressed); - close_accelerators_.insert(accelerator); - AddAccelerator(accelerator); - } - - for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) { - views::Accelerator accelerator(browser::kAcceleratorMap[i].keycode, - browser::kAcceleratorMap[i].shift_pressed, - browser::kAcceleratorMap[i].ctrl_pressed, - browser::kAcceleratorMap[i].alt_pressed); - // Skip a sole ALT key since it's handled on the keyboard overlay. - if (views::Accelerator(ui::VKEY_MENU, false, false, false) == accelerator) { - continue; - } - // Skip accelerators for closing the dialog since they are already added. - if (IsCloseAccelerator(accelerator)) { - continue; - } - AddAccelerator(accelerator); - } - - DOMView::LoadURL(GetDialogContentURL()); -} - -bool KeyboardOverlayDialogView::AcceleratorPressed( - const views::Accelerator& accelerator) { - if (!IsCloseAccelerator(accelerator)) { - parent_view_->AcceleratorPressed(accelerator); - } - OnDialogClosed(std::string()); - return true; -} - -void KeyboardOverlayDialogView::ShowDialog( - gfx::NativeWindow owning_window, BrowserView* parent_view) { - KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate( - UTF16ToWide(l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE))); - KeyboardOverlayDialogView* html_view = - new KeyboardOverlayDialogView(parent_view->browser()->profile(), - delegate, - parent_view); - delegate->set_view(html_view); - html_view->InitDialog(); - chromeos::BubbleWindow::Create(owning_window, - gfx::Rect(), - chromeos::BubbleWindow::STYLE_XSHAPE, - html_view); - html_view->window()->Show(); -} - -bool KeyboardOverlayDialogView::IsCloseAccelerator( - const views::Accelerator& accelerator) { - return close_accelerators_.find(accelerator) != close_accelerators_.end(); -} diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.h b/chrome/browser/ui/views/keyboard_overlay_dialog_view.h deleted file mode 100644 index ac5fac2..0000000 --- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2011 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. - -#ifndef CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_ -#define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_ -#pragma once - -#include <set> - -#include "chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h" -#include "chrome/browser/ui/webui/html_dialog_ui.h" -#include "chrome/browser/ui/views/html_dialog_view.h" -#include "views/window/window_delegate.h" - -class BrowserView; - -// A customized dialog view for the keyboard overlay. -class KeyboardOverlayDialogView : public HtmlDialogView { - public: - KeyboardOverlayDialogView(Profile* profile, - HtmlDialogUIDelegate* delegate, - BrowserView* parent_view); - virtual ~KeyboardOverlayDialogView(); - - // Initializes the contents of the dialog (the DOMView and the callbacks). - void InitDialog(); - - // Overridden from views::View: - virtual bool AcceleratorPressed(const views::Accelerator& accelerator); - - // Shows the keyboard overlay. - static void ShowDialog(gfx::NativeWindow owning_window, BrowserView* parent); - - private: - // Returns true if |accelerator| is an accelerator for closing the dialog. - bool IsCloseAccelerator(const views::Accelerator& accelerator); - - // Points to the view from which this dialog is created. - BrowserView* parent_view_; - - // Contains accelerators for closing this dialog. - std::set<views::Accelerator> close_accelerators_; - - DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDialogView); -}; - -#endif // CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_ diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 37efe96..a0bfb81 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -2986,8 +2986,6 @@ 'browser/ui/views/js_modal_dialog_views.h', 'browser/ui/views/keyboard_overlay_delegate.cc', 'browser/ui/views/keyboard_overlay_delegate.h', - 'browser/ui/views/keyboard_overlay_dialog_view.cc', - 'browser/ui/views/keyboard_overlay_dialog_view.h', 'browser/ui/views/local_storage_info_view.cc', 'browser/ui/views/local_storage_info_view.h', 'browser/ui/views/local_storage_set_item_info_view.cc', @@ -3741,7 +3739,6 @@ 'browser/ui/browser_list_stub.cc', 'browser/ui/crypto_module_password_dialog_nss.cc', 'browser/ui/views/keyboard_overlay_delegate.cc', - 'browser/ui/views/keyboard_overlay_dialog_view.cc', 'browser/ui/views/select_file_dialog.cc', ], 'conditions': [ @@ -3966,8 +3963,6 @@ ['include', '^browser/ui/views/js_modal_dialog_views.h'], ['include', '^browser/ui/views/keyboard_overlay_delegate.cc'], ['include', '^browser/ui/views/keyboard_overlay_delegate.h'], - ['include', '^browser/ui/views/keyboard_overlay_dialog_view.cc'], - ['include', '^browser/ui/views/keyboard_overlay_dialog_view.h'], ['include', '^browser/ui/views/location_bar/click_handler.cc'], ['include', '^browser/ui/views/location_bar/click_handler.h'], ['include', '^browser/ui/views/location_bar/content_setting_image_view.cc'], |