summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-03 17:18:08 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-03 17:18:08 +0000
commit4747f48db280ea100258ab20881dc7e0bfeb3f68 (patch)
treec70219d6a861f4306fd6cfe837db4f94401dc366
parent9ab86d92329333998be78bb3f1cebad74cc92f7e (diff)
downloadchromium_src-4747f48db280ea100258ab20881dc7e0bfeb3f68.zip
chromium_src-4747f48db280ea100258ab20881dc7e0bfeb3f68.tar.gz
chromium_src-4747f48db280ea100258ab20881dc7e0bfeb3f68.tar.bz2
Adding registration of accelerators for the browser in toolkit_views.
BUG=None TEST=Open Chrome built with toolkit_views, test that accelerators work. See review: http://codereview.chromium.org/160502 Review URL: http://codereview.chromium.org/159790 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22277 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/accelerator_table_linux.cc115
-rw-r--r--chrome/browser/accelerator_table_linux.h23
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc117
-rw-r--r--chrome/browser/views/frame/browser_view.cc36
-rw-r--r--chrome/browser/views/frame/browser_view.h2
-rw-r--r--chrome/chrome.gyp2
-rw-r--r--views/event.h2
-rw-r--r--views/event_gtk.cc4
8 files changed, 179 insertions, 122 deletions
diff --git a/chrome/browser/accelerator_table_linux.cc b/chrome/browser/accelerator_table_linux.cc
new file mode 100644
index 0000000..9eb3971
--- /dev/null
+++ b/chrome/browser/accelerator_table_linux.cc
@@ -0,0 +1,115 @@
+// Copyright (c) 2009 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 <gdk/gdkkeysyms.h>
+#include <X11/XF86keysym.h>
+
+#include "chrome/browser/accelerator_table_linux.h"
+
+#include "base/basictypes.h"
+#include "chrome/app/chrome_dll_resource.h"
+
+namespace browser {
+
+// Keep this in sync with various context menus which display the accelerators.
+const AcceleratorMapping kAcceleratorMap[] = {
+ // Focus.
+ { GDK_k, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
+ { GDK_e, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
+ { XF86XK_Search, IDC_FOCUS_SEARCH, GdkModifierType(0) },
+ { GDK_l, IDC_FOCUS_LOCATION, GDK_CONTROL_MASK },
+ { GDK_d, IDC_FOCUS_LOCATION, GDK_MOD1_MASK },
+ { GDK_F6, IDC_FOCUS_LOCATION, GdkModifierType(0) },
+ { XF86XK_OpenURL, IDC_FOCUS_LOCATION, GdkModifierType(0) },
+ { XF86XK_Go, IDC_FOCUS_LOCATION, GdkModifierType(0) },
+
+ // Tab/window controls.
+ { GDK_Page_Down, IDC_SELECT_NEXT_TAB, GDK_CONTROL_MASK },
+ { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK },
+ { GDK_w, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
+ { GDK_t, IDC_RESTORE_TAB,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
+
+ { GDK_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK },
+ { GDK_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK },
+ { GDK_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK },
+ { GDK_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK },
+ { GDK_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK },
+ { GDK_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK },
+ { GDK_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK },
+ { GDK_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK },
+ { GDK_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK },
+
+ { GDK_1, IDC_SELECT_TAB_0, GDK_MOD1_MASK },
+ { GDK_2, IDC_SELECT_TAB_1, GDK_MOD1_MASK },
+ { GDK_3, IDC_SELECT_TAB_2, GDK_MOD1_MASK },
+ { GDK_4, IDC_SELECT_TAB_3, GDK_MOD1_MASK },
+ { GDK_5, IDC_SELECT_TAB_4, GDK_MOD1_MASK },
+ { GDK_6, IDC_SELECT_TAB_5, GDK_MOD1_MASK },
+ { GDK_7, IDC_SELECT_TAB_6, GDK_MOD1_MASK },
+ { GDK_8, IDC_SELECT_TAB_7, GDK_MOD1_MASK },
+ { GDK_9, IDC_SELECT_LAST_TAB, GDK_MOD1_MASK },
+
+ { GDK_F4, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
+ { GDK_F4, IDC_CLOSE_WINDOW, GDK_MOD1_MASK },
+
+ // Zoom level.
+ { GDK_plus, IDC_ZOOM_PLUS,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
+ { GDK_equal, IDC_ZOOM_PLUS, GDK_CONTROL_MASK },
+ { XF86XK_ZoomIn, IDC_ZOOM_PLUS, GdkModifierType(0) },
+ { GDK_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK },
+ { GDK_minus, IDC_ZOOM_MINUS, GDK_CONTROL_MASK },
+ { GDK_underscore, IDC_ZOOM_MINUS,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
+ { XF86XK_ZoomOut, IDC_ZOOM_MINUS, GdkModifierType(0) },
+
+ // Find in page.
+ { GDK_g, IDC_FIND_NEXT, GDK_CONTROL_MASK },
+ { GDK_F3, IDC_FIND_NEXT, GdkModifierType(0) },
+ { GDK_g, IDC_FIND_PREVIOUS,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
+ { GDK_F3, IDC_FIND_PREVIOUS, GDK_SHIFT_MASK },
+
+ // Navigation / toolbar buttons.
+ { GDK_Home, IDC_HOME, GDK_MOD1_MASK },
+ { XF86XK_HomePage, IDC_HOME, GdkModifierType(0) },
+ { GDK_Escape, IDC_STOP, GdkModifierType(0) },
+ { XF86XK_Stop, IDC_STOP, GdkModifierType(0) },
+ { GDK_Left, IDC_BACK, GDK_MOD1_MASK },
+ { GDK_BackSpace, IDC_BACK, GdkModifierType(0) },
+ { XF86XK_Back, IDC_BACK, GdkModifierType(0) },
+ { GDK_Right, IDC_FORWARD, GDK_MOD1_MASK },
+ { GDK_BackSpace, IDC_FORWARD, GDK_SHIFT_MASK },
+ { XF86XK_Forward, IDC_FORWARD, GdkModifierType(0) },
+ { GDK_r, IDC_RELOAD, GDK_CONTROL_MASK },
+ { GDK_F5, IDC_RELOAD, GdkModifierType(0) },
+ { GDK_F5, IDC_RELOAD, GDK_CONTROL_MASK },
+ { GDK_F5, IDC_RELOAD, GDK_SHIFT_MASK },
+ { XF86XK_Reload, IDC_RELOAD, GdkModifierType(0) },
+ { XF86XK_Refresh, IDC_RELOAD, GdkModifierType(0) },
+
+ // Miscellany.
+ { GDK_d, IDC_STAR, GDK_CONTROL_MASK },
+ { XF86XK_AddFavorite, IDC_STAR, GdkModifierType(0) },
+ { XF86XK_Favorites, IDC_SHOW_BOOKMARK_BAR, GdkModifierType(0) },
+ { XF86XK_History, IDC_SHOW_HISTORY, GdkModifierType(0) },
+ { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK },
+ { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) },
+ { GDK_u, IDC_VIEW_SOURCE, GDK_CONTROL_MASK },
+ { GDK_p, IDC_PRINT, GDK_CONTROL_MASK },
+ { GDK_Escape, IDC_TASK_MANAGER, GDK_SHIFT_MASK },
+
+#if defined(OS_CHROMEOS)
+ { GDK_f, IDC_FULLSCREEN,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_MOD1_MASK) },
+ { GDK_Delete, IDC_TASK_MANAGER,
+ GdkModifierType(GDK_CONTROL_MASK | GDK_MOD1_MASK) },
+ { GDK_comma, IDC_CONTROL_PANEL, GdkModifierType(GDK_CONTROL_MASK) },
+#endif
+};
+
+const size_t kAcceleratorMapLength = arraysize(kAcceleratorMap);
+
+} // namespace browser
diff --git a/chrome/browser/accelerator_table_linux.h b/chrome/browser/accelerator_table_linux.h
new file mode 100644
index 0000000..f419b2f
--- /dev/null
+++ b/chrome/browser/accelerator_table_linux.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2009 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 <gtk/gtk.h>
+
+// This contains the list of accelerators shared between the Linux Gtk and
+// toolkit_view implementation.
+namespace browser {
+
+ struct AcceleratorMapping {
+ guint keyval;
+ int command_id;
+ GdkModifierType modifier_type;
+ };
+
+ // The list of accelerators.
+ extern const AcceleratorMapping kAcceleratorMap[];
+
+ // The numbers of elements in kAcceleratorMap.
+ extern const size_t kAcceleratorMapLength;
+}
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index ccfc556..9366776 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -21,6 +21,7 @@
#include "base/string_util.h"
#include "base/time.h"
#include "chrome/app/chrome_dll_resource.h"
+#include "chrome/browser/accelerator_table_linux.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_list.h"
@@ -151,118 +152,16 @@ gfx::Rect GetInitialWindowBounds(GtkWindow* window) {
return gfx::Rect(x, y, width, height);
}
-// Keep this in sync with various context menus which display the accelerators.
-const struct AcceleratorMapping {
- guint keyval;
- int command_id;
- GdkModifierType modifier_type;
-} kAcceleratorMap[] = {
- // Focus.
- { GDK_k, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
- { GDK_e, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK },
- { XF86XK_Search, IDC_FOCUS_SEARCH, GdkModifierType(0) },
- { GDK_l, IDC_FOCUS_LOCATION, GDK_CONTROL_MASK },
- { GDK_d, IDC_FOCUS_LOCATION, GDK_MOD1_MASK },
- { GDK_F6, IDC_FOCUS_LOCATION, GdkModifierType(0) },
- { XF86XK_OpenURL, IDC_FOCUS_LOCATION, GdkModifierType(0) },
- { XF86XK_Go, IDC_FOCUS_LOCATION, GdkModifierType(0) },
-
- // Tab/window controls.
- { GDK_Page_Down, IDC_SELECT_NEXT_TAB, GDK_CONTROL_MASK },
- { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK },
- { GDK_w, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
- { GDK_t, IDC_RESTORE_TAB,
- GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
-
- { GDK_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK },
- { GDK_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK },
- { GDK_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK },
- { GDK_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK },
- { GDK_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK },
- { GDK_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK },
- { GDK_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK },
- { GDK_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK },
- { GDK_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK },
-
- { GDK_1, IDC_SELECT_TAB_0, GDK_MOD1_MASK },
- { GDK_2, IDC_SELECT_TAB_1, GDK_MOD1_MASK },
- { GDK_3, IDC_SELECT_TAB_2, GDK_MOD1_MASK },
- { GDK_4, IDC_SELECT_TAB_3, GDK_MOD1_MASK },
- { GDK_5, IDC_SELECT_TAB_4, GDK_MOD1_MASK },
- { GDK_6, IDC_SELECT_TAB_5, GDK_MOD1_MASK },
- { GDK_7, IDC_SELECT_TAB_6, GDK_MOD1_MASK },
- { GDK_8, IDC_SELECT_TAB_7, GDK_MOD1_MASK },
- { GDK_9, IDC_SELECT_LAST_TAB, GDK_MOD1_MASK },
-
- { GDK_F4, IDC_CLOSE_TAB, GDK_CONTROL_MASK },
- { GDK_F4, IDC_CLOSE_WINDOW, GDK_MOD1_MASK },
-
- // Zoom level.
- { GDK_plus, IDC_ZOOM_PLUS,
- GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
- { GDK_equal, IDC_ZOOM_PLUS, GDK_CONTROL_MASK },
- { XF86XK_ZoomIn, IDC_ZOOM_PLUS, GdkModifierType(0) },
- { GDK_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK },
- { GDK_minus, IDC_ZOOM_MINUS, GDK_CONTROL_MASK },
- { GDK_underscore, IDC_ZOOM_MINUS,
- GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
- { XF86XK_ZoomOut, IDC_ZOOM_MINUS, GdkModifierType(0) },
-
- // Find in page.
- { GDK_g, IDC_FIND_NEXT, GDK_CONTROL_MASK },
- { GDK_F3, IDC_FIND_NEXT, GdkModifierType(0) },
- { GDK_g, IDC_FIND_PREVIOUS,
- GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) },
- { GDK_F3, IDC_FIND_PREVIOUS, GDK_SHIFT_MASK },
-
- // Navigation / toolbar buttons.
- { GDK_Home, IDC_HOME, GDK_MOD1_MASK },
- { XF86XK_HomePage, IDC_HOME, GdkModifierType(0) },
- { GDK_Escape, IDC_STOP, GdkModifierType(0) },
- { XF86XK_Stop, IDC_STOP, GdkModifierType(0) },
- { GDK_Left, IDC_BACK, GDK_MOD1_MASK },
- { GDK_BackSpace, IDC_BACK, GdkModifierType(0) },
- { XF86XK_Back, IDC_BACK, GdkModifierType(0) },
- { GDK_Right, IDC_FORWARD, GDK_MOD1_MASK },
- { GDK_BackSpace, IDC_FORWARD, GDK_SHIFT_MASK },
- { XF86XK_Forward, IDC_FORWARD, GdkModifierType(0) },
- { GDK_r, IDC_RELOAD, GDK_CONTROL_MASK },
- { GDK_F5, IDC_RELOAD, GdkModifierType(0) },
- { GDK_F5, IDC_RELOAD, GDK_CONTROL_MASK },
- { GDK_F5, IDC_RELOAD, GDK_SHIFT_MASK },
- { XF86XK_Reload, IDC_RELOAD, GdkModifierType(0) },
- { XF86XK_Refresh, IDC_RELOAD, GdkModifierType(0) },
-
- // Miscellany.
- { GDK_d, IDC_STAR, GDK_CONTROL_MASK },
- { XF86XK_AddFavorite, IDC_STAR, GdkModifierType(0) },
- { XF86XK_Favorites, IDC_SHOW_BOOKMARK_BAR, GdkModifierType(0) },
- { XF86XK_History, IDC_SHOW_HISTORY, GdkModifierType(0) },
- { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK },
- { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) },
- { GDK_u, IDC_VIEW_SOURCE, GDK_CONTROL_MASK },
- { GDK_p, IDC_PRINT, GDK_CONTROL_MASK },
- { GDK_Escape, IDC_TASK_MANAGER, GDK_SHIFT_MASK },
-
-#if defined(OS_CHROMEOS)
- { GDK_f, IDC_FULLSCREEN,
- GdkModifierType(GDK_CONTROL_MASK | GDK_MOD1_MASK) },
- { GDK_Delete, IDC_TASK_MANAGER,
- GdkModifierType(GDK_CONTROL_MASK | GDK_MOD1_MASK) },
- { GDK_comma, IDC_CONTROL_PANEL, GdkModifierType(GDK_CONTROL_MASK) },
-#endif
-};
-
int GetCommandId(guint accel_key, GdkModifierType modifier) {
// Bug 9806: If capslock is on, we will get a capital letter as accel_key.
accel_key = gdk_keyval_to_lower(accel_key);
// Filter modifier to only include accelerator modifiers.
modifier = static_cast<GdkModifierType>(
modifier & gtk_accelerator_get_default_mod_mask());
- for (size_t i = 0; i < arraysize(kAcceleratorMap); ++i) {
- if (kAcceleratorMap[i].keyval == accel_key &&
- kAcceleratorMap[i].modifier_type == modifier)
- return kAcceleratorMap[i].command_id;
+ for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) {
+ if (browser::kAcceleratorMap[i].keyval == accel_key &&
+ browser::kAcceleratorMap[i].modifier_type == modifier)
+ return browser::kAcceleratorMap[i].command_id;
}
NOTREACHED();
return 0;
@@ -1423,11 +1322,11 @@ void BrowserWindowGtk::ConnectAccelerators() {
// Drop the initial ref on |accel_group| so |window_| will own it.
g_object_unref(accel_group);
- for (size_t i = 0; i < arraysize(kAcceleratorMap); ++i) {
+ for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) {
gtk_accel_group_connect(
accel_group,
- kAcceleratorMap[i].keyval,
- kAcceleratorMap[i].modifier_type,
+ browser::kAcceleratorMap[i].keyval,
+ browser::kAcceleratorMap[i].modifier_type,
GtkAccelFlags(0),
g_cclosure_new(G_CALLBACK(OnGtkAccelerator), this, NULL));
}
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
index c9a3155..efce62a 100644
--- a/chrome/browser/views/frame/browser_view.cc
+++ b/chrome/browser/views/frame/browser_view.cc
@@ -69,6 +69,7 @@
#include "chrome/browser/jumplist.h"
#include "views/controls/scrollbar/native_scroll_bar.h"
#elif defined(OS_LINUX)
+#include "chrome/browser/accelerator_table_linux.h"
#include <gtk/gtk.h>
#include "views/window/hit_test.h"
@@ -459,10 +460,9 @@ bool BrowserView::ShouldShowOffTheRecordAvatar() const {
}
bool BrowserView::AcceleratorPressed(const views::Accelerator& accelerator) {
- DCHECK(accelerator_table_.get());
std::map<views::Accelerator, int>::const_iterator iter =
- accelerator_table_->find(accelerator);
- DCHECK(iter != accelerator_table_->end());
+ accelerator_table_.find(accelerator);
+ DCHECK(iter != accelerator_table_.end());
int command_id = iter->second;
if (browser_->command_updater()->SupportsCommand(command_id) &&
@@ -489,8 +489,8 @@ bool BrowserView::GetAccelerator(int cmd_id, views::Accelerator* accelerator) {
}
// Else, we retrieve the accelerator information from the accelerator table.
std::map<views::Accelerator, int>::iterator it =
- accelerator_table_->begin();
- for (; it != accelerator_table_->end(); ++it) {
+ accelerator_table_.begin();
+ for (; it != accelerator_table_.end(); ++it) {
if (it->second == cmd_id) {
*accelerator = it->first;
return true;
@@ -1769,15 +1769,14 @@ void BrowserView::LoadAccelerators() {
views::FocusManager* focus_manager = GetFocusManager();
DCHECK(focus_manager);
- // Let's build our own accelerator table.
- accelerator_table_.reset(new std::map<views::Accelerator, int>);
+ // Let's fill our own accelerator table.
for (int i = 0; i < count; ++i) {
bool alt_down = (accelerators[i].fVirt & FALT) == FALT;
bool ctrl_down = (accelerators[i].fVirt & FCONTROL) == FCONTROL;
bool shift_down = (accelerators[i].fVirt & FSHIFT) == FSHIFT;
views::Accelerator accelerator(accelerators[i].key, shift_down, ctrl_down,
alt_down);
- (*accelerator_table_)[accelerator] = accelerators[i].cmd;
+ accelerator_table_[accelerator] = accelerators[i].cmd;
// Also register with the focus manager.
focus_manager->RegisterAccelerator(accelerator, this);
@@ -1786,7 +1785,26 @@ void BrowserView::LoadAccelerators() {
// We don't need the Windows accelerator table anymore.
free(accelerators);
#else
- NOTIMPLEMENTED();
+ views::FocusManager* focus_manager = GetFocusManager();
+ DCHECK(focus_manager);
+ // Let's fill our own accelerator table.
+ for (size_t i = 0; i < browser::kAcceleratorMapLength; ++i) {
+ bool alt_down =
+ (browser::kAcceleratorMap[i].modifier_type & GDK_MOD1_MASK) ==
+ GDK_MOD1_MASK;
+ bool ctrl_down =
+ (browser::kAcceleratorMap[i].modifier_type & GDK_CONTROL_MASK) ==
+ GDK_CONTROL_MASK;
+ bool shift_down =
+ (browser::kAcceleratorMap[i].modifier_type & GDK_SHIFT_MASK) ==
+ GDK_SHIFT_MASK;
+ views::Accelerator accelerator(browser::kAcceleratorMap[i].keyval,
+ shift_down, ctrl_down, alt_down);
+ accelerator_table_[accelerator] = browser::kAcceleratorMap[i].command_id;
+
+ // Also register with the focus manager.
+ focus_manager->RegisterAccelerator(accelerator, this);
+ }
#endif
}
diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h
index 3d0b2b0..c788a1c 100644
--- a/chrome/browser/views/frame/browser_view.h
+++ b/chrome/browser/views/frame/browser_view.h
@@ -447,7 +447,7 @@ class BrowserView : public BrowserWindow,
scoped_ptr<StatusBubbleViews> status_bubble_;
// A mapping between accelerators and commands.
- scoped_ptr< std::map<views::Accelerator, int> > accelerator_table_;
+ std::map<views::Accelerator, int> accelerator_table_;
// True if we have already been initialized.
bool initialized_;
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 84633a4..56a34c6 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -576,6 +576,8 @@
'sources': [
# All .cc, .h, .m, and .mm files under browser except for tests and
# mocks.
+ 'browser/accelerator_table_linux.cc',
+ 'browser/accelerator_table_linux.h',
'browser/alternate_nav_url_fetcher.cc',
'browser/alternate_nav_url_fetcher.h',
'browser/app_controller_mac.h',
diff --git a/views/event.h b/views/event.h
index 843ed00..ee9a838 100644
--- a/views/event.h
+++ b/views/event.h
@@ -234,7 +234,7 @@ class KeyEvent : public Event {
// Create a new key event
KeyEvent(EventType type, int ch, int repeat_count, int message_flags);
#elif defined(OS_LINUX)
- KeyEvent(GdkEventKey* event, bool make_upper_case);
+ KeyEvent(GdkEventKey* event, bool make_lower_case);
#endif
int GetCharacter() const {
diff --git a/views/event_gtk.cc b/views/event_gtk.cc
index d1b9d88..6f1e450 100644
--- a/views/event_gtk.cc
+++ b/views/event_gtk.cc
@@ -11,12 +11,12 @@ namespace views {
// TODO(jcampan): the same physical key can send different keyvals (ex: a or A).
// In order for accelerators to work, we need to normalize that. The right
// solution should probably to get the key-code out of the keystate.
-KeyEvent::KeyEvent(GdkEventKey* event, bool make_upper_case)
+KeyEvent::KeyEvent(GdkEventKey* event, bool make_lower_case)
: Event(event->type == GDK_KEY_PRESS ?
Event::ET_KEY_PRESSED : Event::ET_KEY_RELEASED,
GetFlagsFromGdkState(event->state)),
// TODO(erg): All these values are iffy.
- character_(make_upper_case ? gdk_keyval_to_upper (event->keyval) :
+ character_(make_lower_case ? gdk_keyval_to_lower(event->keyval) :
event->keyval),
repeat_count_(0),
message_flags_(0) {