OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/gtk/browser_window_gtk.h" | 5 #include "chrome/browser/gtk/browser_window_gtk.h" |
6 | 6 |
7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
| 8 #include <X11/XF86keysym.h> |
8 | 9 |
9 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
10 #include "app/theme_provider.h" | 11 #include "app/theme_provider.h" |
11 #include "base/base_paths_linux.h" | 12 #include "base/base_paths_linux.h" |
12 #include "base/gfx/gtk_util.h" | 13 #include "base/gfx/gtk_util.h" |
13 #include "base/logging.h" | 14 #include "base/logging.h" |
14 #include "base/message_loop.h" | 15 #include "base/message_loop.h" |
15 #include "base/path_service.h" | 16 #include "base/path_service.h" |
16 #include "base/string_util.h" | 17 #include "base/string_util.h" |
17 #include "base/time.h" | 18 #include "base/time.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 return gfx::Rect(x, y, width, height); | 111 return gfx::Rect(x, y, width, height); |
111 } | 112 } |
112 | 113 |
113 const struct AcceleratorMapping { | 114 const struct AcceleratorMapping { |
114 guint keyval; | 115 guint keyval; |
115 int command_id; | 116 int command_id; |
116 GdkModifierType modifier_type; | 117 GdkModifierType modifier_type; |
117 } kAcceleratorMap[] = { | 118 } kAcceleratorMap[] = { |
118 // Focus. | 119 // Focus. |
119 { GDK_k, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK }, | 120 { GDK_k, IDC_FOCUS_SEARCH, GDK_CONTROL_MASK }, |
| 121 { XF86XK_Search, IDC_FOCUS_SEARCH, GdkModifierType(0) }, |
120 { GDK_l, IDC_FOCUS_LOCATION, GDK_CONTROL_MASK }, | 122 { GDK_l, IDC_FOCUS_LOCATION, GDK_CONTROL_MASK }, |
121 { GDK_d, IDC_FOCUS_LOCATION, GDK_MOD1_MASK }, | 123 { GDK_d, IDC_FOCUS_LOCATION, GDK_MOD1_MASK }, |
122 { GDK_F6, IDC_FOCUS_LOCATION, GdkModifierType(0) }, | 124 { GDK_F6, IDC_FOCUS_LOCATION, GdkModifierType(0) }, |
| 125 { XF86XK_OpenURL, IDC_FOCUS_LOCATION, GdkModifierType(0) }, |
| 126 { XF86XK_Go, IDC_FOCUS_LOCATION, GdkModifierType(0) }, |
123 | 127 |
124 // Tab/window controls. | 128 // Tab/window controls. |
125 { GDK_Page_Down, IDC_SELECT_NEXT_TAB, GDK_CONTROL_MASK }, | 129 { GDK_Page_Down, IDC_SELECT_NEXT_TAB, GDK_CONTROL_MASK }, |
126 { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK }, | 130 { GDK_Page_Up, IDC_SELECT_PREVIOUS_TAB, GDK_CONTROL_MASK }, |
127 { GDK_w, IDC_CLOSE_TAB, GDK_CONTROL_MASK }, | 131 { GDK_w, IDC_CLOSE_TAB, GDK_CONTROL_MASK }, |
128 { GDK_t, IDC_RESTORE_TAB, | 132 { GDK_t, IDC_RESTORE_TAB, |
129 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, | 133 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, |
130 { GDK_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK }, | 134 { GDK_1, IDC_SELECT_TAB_0, GDK_CONTROL_MASK }, |
131 { GDK_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK }, | 135 { GDK_2, IDC_SELECT_TAB_1, GDK_CONTROL_MASK }, |
132 { GDK_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK }, | 136 { GDK_3, IDC_SELECT_TAB_2, GDK_CONTROL_MASK }, |
133 { GDK_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK }, | 137 { GDK_4, IDC_SELECT_TAB_3, GDK_CONTROL_MASK }, |
134 { GDK_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK }, | 138 { GDK_5, IDC_SELECT_TAB_4, GDK_CONTROL_MASK }, |
135 { GDK_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK }, | 139 { GDK_6, IDC_SELECT_TAB_5, GDK_CONTROL_MASK }, |
136 { GDK_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK }, | 140 { GDK_7, IDC_SELECT_TAB_6, GDK_CONTROL_MASK }, |
137 { GDK_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK }, | 141 { GDK_8, IDC_SELECT_TAB_7, GDK_CONTROL_MASK }, |
138 { GDK_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK }, | 142 { GDK_9, IDC_SELECT_LAST_TAB, GDK_CONTROL_MASK }, |
139 { GDK_F4, IDC_CLOSE_TAB, GDK_CONTROL_MASK }, | 143 { GDK_F4, IDC_CLOSE_TAB, GDK_CONTROL_MASK }, |
140 { GDK_F4, IDC_CLOSE_WINDOW, GDK_MOD1_MASK }, | 144 { GDK_F4, IDC_CLOSE_WINDOW, GDK_MOD1_MASK }, |
141 | 145 |
142 // Zoom level. | 146 // Zoom level. |
143 { GDK_plus, IDC_ZOOM_PLUS, | 147 { GDK_plus, IDC_ZOOM_PLUS, |
144 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, | 148 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, |
145 { GDK_equal, IDC_ZOOM_PLUS, GDK_CONTROL_MASK }, | 149 { GDK_equal, IDC_ZOOM_PLUS, GDK_CONTROL_MASK }, |
| 150 { XF86XK_ZoomIn, IDC_ZOOM_PLUS, GdkModifierType(0) }, |
146 { GDK_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK }, | 151 { GDK_0, IDC_ZOOM_NORMAL, GDK_CONTROL_MASK }, |
147 { GDK_minus, IDC_ZOOM_MINUS, GDK_CONTROL_MASK }, | 152 { GDK_minus, IDC_ZOOM_MINUS, GDK_CONTROL_MASK }, |
148 { GDK_underscore, IDC_ZOOM_MINUS, | 153 { GDK_underscore, IDC_ZOOM_MINUS, |
149 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, | 154 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, |
| 155 { XF86XK_ZoomOut, IDC_ZOOM_MINUS, GdkModifierType(0) }, |
150 | 156 |
151 // Find in page. | 157 // Find in page. |
152 { GDK_g, IDC_FIND_NEXT, GDK_CONTROL_MASK }, | 158 { GDK_g, IDC_FIND_NEXT, GDK_CONTROL_MASK }, |
153 { GDK_F3, IDC_FIND_NEXT, GdkModifierType(0) }, | 159 { GDK_F3, IDC_FIND_NEXT, GdkModifierType(0) }, |
154 { GDK_g, IDC_FIND_PREVIOUS, | 160 { GDK_g, IDC_FIND_PREVIOUS, |
155 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, | 161 GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, |
156 { GDK_F3, IDC_FIND_PREVIOUS, GDK_SHIFT_MASK }, | 162 { GDK_F3, IDC_FIND_PREVIOUS, GDK_SHIFT_MASK }, |
157 | 163 |
158 // Navigation. | 164 // Navigation. |
159 { GDK_Home, IDC_HOME, GDK_MOD1_MASK }, | 165 { GDK_Home, IDC_HOME, GDK_MOD1_MASK }, |
| 166 { XF86XK_HomePage, IDC_HOME, GdkModifierType(0) }, |
160 { GDK_Escape, IDC_STOP, GdkModifierType(0) }, | 167 { GDK_Escape, IDC_STOP, GdkModifierType(0) }, |
| 168 { XF86XK_Stop, IDC_STOP, GdkModifierType(0) }, |
161 | 169 |
162 // Miscellany. | 170 // Miscellany. |
163 { GDK_d, IDC_STAR, GDK_CONTROL_MASK }, | 171 { GDK_d, IDC_STAR, GDK_CONTROL_MASK }, |
| 172 { XF86XK_AddFavorite, IDC_STAR, GdkModifierType(0) }, |
| 173 { XF86XK_Favorites, IDC_SHOW_BOOKMARK_BAR, GdkModifierType(0) }, |
| 174 { XF86XK_History, IDC_SHOW_HISTORY, GdkModifierType(0) }, |
164 { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK }, | 175 { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK }, |
165 { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) }, | 176 { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) }, |
166 { GDK_u, IDC_VIEW_SOURCE, GDK_CONTROL_MASK }, | 177 { GDK_u, IDC_VIEW_SOURCE, GDK_CONTROL_MASK }, |
167 { GDK_p, IDC_PRINT, GDK_CONTROL_MASK }, | 178 { GDK_p, IDC_PRINT, GDK_CONTROL_MASK }, |
168 { GDK_Escape, IDC_TASK_MANAGER, GDK_SHIFT_MASK }, | 179 { GDK_Escape, IDC_TASK_MANAGER, GDK_SHIFT_MASK }, |
169 }; | 180 }; |
170 | 181 |
171 int GetCommandId(guint accel_key, GdkModifierType modifier) { | 182 int GetCommandId(guint accel_key, GdkModifierType modifier) { |
172 // Bug 9806: If capslock is on, we will get a capital letter as accel_key. | 183 // Bug 9806: If capslock is on, we will get a capital letter as accel_key. |
173 accel_key = gdk_keyval_to_lower(accel_key); | 184 accel_key = gdk_keyval_to_lower(accel_key); |
(...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1070 } | 1081 } |
1071 | 1082 |
1072 bool BrowserWindowGtk::IsToolbarSupported() { | 1083 bool BrowserWindowGtk::IsToolbarSupported() { |
1073 return browser_->SupportsWindowFeature(Browser::FEATURE_TOOLBAR) || | 1084 return browser_->SupportsWindowFeature(Browser::FEATURE_TOOLBAR) || |
1074 browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR); | 1085 browser_->SupportsWindowFeature(Browser::FEATURE_LOCATIONBAR); |
1075 } | 1086 } |
1076 | 1087 |
1077 bool BrowserWindowGtk::IsBookmarkBarSupported() { | 1088 bool BrowserWindowGtk::IsBookmarkBarSupported() { |
1078 return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR); | 1089 return browser_->SupportsWindowFeature(Browser::FEATURE_BOOKMARKBAR); |
1079 } | 1090 } |
OLD | NEW |