Commit 495a8d0e authored by mazda@chromium.org's avatar mazda@chromium.org

Aura: Support non-global keyboard shortcuts.

BUG=100232
TEST=Manual


Review URL: http://codereview.chromium.org/8341050

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107747 0039d316-1c4b-4281-b951-d872f2087c98
parent 5595f40d
......@@ -2,7 +2,7 @@
// 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/accelerator_table_linux.h"
#include "chrome/browser/ui/views/accelerator_table.h"
#include "base/basictypes.h"
#include "chrome/app/chrome_command_ids.h"
......
......@@ -2,16 +2,15 @@
// 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_ACCELERATOR_TABLE_LINUX_H_
#define CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_LINUX_H_
#ifndef CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
#define CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
#pragma once
#include <stdio.h>
#include "ui/base/keycodes/keyboard_codes.h"
// This contains the list of accelerators for the Linux toolkit_view
// implementation.
// This contains the list of accelerators for the Aura implementation.
namespace browser {
struct AcceleratorMapping {
......@@ -29,4 +28,4 @@ namespace browser {
extern const size_t kAcceleratorMapLength;
}
#endif // CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_LINUX_H_
#endif // CHROME_BROWSER_UI_VIEWS_ACCELERATOR_TABLE_H_
......@@ -105,6 +105,7 @@
#include "views/window/dialog_delegate.h"
#if defined(USE_AURA)
#include "chrome/browser/ui/views/accelerator_table.h"
#include "chrome/browser/ui/views/aura/chrome_shell_delegate.h"
#include "chrome/browser/ui/views/aura/launcher_icon_updater.h"
#include "ui/aura_shell/launcher/launcher.h"
......@@ -117,7 +118,7 @@
#include "ui/base/message_box_win.h"
#include "views/widget/native_widget_win.h"
#elif defined(TOOLKIT_USES_GTK)
#include "chrome/browser/ui/views/accelerator_table_linux.h"
#include "chrome/browser/ui/views/accelerator_table.h"
#include "views/window/hit_test.h"
#if !defined(TOUCH_UI)
#include "chrome/browser/ui/views/handle_web_keyboard_event.h"
......@@ -2291,10 +2292,7 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
}
void BrowserView::LoadAccelerators() {
#if defined(USE_AURA)
// TODO(beng):
NOTIMPLEMENTED();
#elif defined(OS_WIN)
#if defined(OS_WIN) && !defined(USE_AURA)
HACCEL accelerator_table = AtlLoadAccelerators(IDR_MAINFRAME);
DCHECK(accelerator_table);
......
......@@ -8,7 +8,7 @@
#include "chrome/browser/chromeos/frame/bubble_window.h"
#include "chrome/browser/chromeos/input_method/input_method_manager.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/views/accelerator_table_linux.h"
#include "chrome/browser/ui/views/accelerator_table.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"
......
......@@ -3246,8 +3246,8 @@
'browser/ui/views/about_chrome_view.h',
'browser/ui/views/about_ipc_dialog.cc',
'browser/ui/views/about_ipc_dialog.h',
'browser/ui/views/accelerator_table_linux.cc',
'browser/ui/views/accelerator_table_linux.h',
'browser/ui/views/accelerator_table.cc',
'browser/ui/views/accelerator_table.h',
'browser/ui/views/accessibility_event_router_views.cc',
'browser/ui/views/accessibility_event_router_views.h',
'browser/ui/views/accessible_pane_view.cc',
......@@ -4565,6 +4565,12 @@
['exclude', '^browser/first_run/try_chrome_dialog_view.h'],
],
'conditions': [
['OS=="linux" or use_aura==1',{
'sources/': [
['include', '^browser/ui/views/accelerator_table.cc'],
['include', '^browser/ui/views/accelerator_table.h'],
]
}],
['OS=="linux" and toolkit_views==1',{
'dependencies': [
'../views/views.gyp:views',
......@@ -4645,8 +4651,6 @@
['include', '^browser/ui/tabs/dock_info.h'],
['include', '^browser/ui/views/about_chrome_view.cc'],
['include', '^browser/ui/views/about_chrome_view.h'],
['include', '^browser/ui/views/accelerator_table_linux.cc'],
['include', '^browser/ui/views/accelerator_table_linux.h'],
['include', '^browser/ui/views/accessibility_event_router_views.cc'],
['include', '^browser/ui/views/accessibility_event_router_views.h'],
['include', '^browser/ui/views/accessible_pane_view.cc'],
......
......@@ -416,7 +416,8 @@ void NativeWidgetAura::SetCursor(gfx::NativeCursor cursor) {
}
void NativeWidgetAura::ClearNativeFocus() {
NOTIMPLEMENTED();
if (window_ && window_->GetFocusManager())
window_->GetFocusManager()->SetFocusedWindow(window_);
}
void NativeWidgetAura::FocusNativeView(gfx::NativeView native_view) {
......@@ -437,7 +438,10 @@ gfx::Rect NativeWidgetAura::GetWorkAreaBoundsInScreen() const {
// NativeWidgetAura, views::InputMethodDelegate implementation:
void NativeWidgetAura::DispatchKeyEventPostIME(const KeyEvent& key) {
delegate_->OnKeyEvent(key);
if (delegate_->OnKeyEvent(key))
return;
if (key.type() == ui::ET_KEY_PRESSED && GetWidget()->GetFocusManager())
GetWidget()->GetFocusManager()->OnKeyEvent(key);
}
////////////////////////////////////////////////////////////////////////////////
......@@ -455,7 +459,8 @@ void NativeWidgetAura::OnFocus() {
InputMethod* input_method = widget->GetInputMethod();
input_method->OnFocus();
// See description of got_initial_focus_in_ for details on this.
widget->GetFocusManager()->RestoreFocusedView();
// TODO(mazda): Investigate this is actually necessary.
// widget->GetFocusManager()->RestoreFocusedView();
}
delegate_->OnNativeFocus(window_);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment