diff options
author | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-03 17:18:08 +0000 |
---|---|---|
committer | jcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-03 17:18:08 +0000 |
commit | 4747f48db280ea100258ab20881dc7e0bfeb3f68 (patch) | |
tree | c70219d6a861f4306fd6cfe837db4f94401dc366 | |
parent | 9ab86d92329333998be78bb3f1cebad74cc92f7e (diff) | |
download | chromium_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.cc | 115 | ||||
-rw-r--r-- | chrome/browser/accelerator_table_linux.h | 23 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 117 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 36 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.h | 2 | ||||
-rw-r--r-- | chrome/chrome.gyp | 2 | ||||
-rw-r--r-- | views/event.h | 2 | ||||
-rw-r--r-- | views/event_gtk.cc | 4 |
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) { |