Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Unified Diff: views/widget/gtk_views_window.cc

Issue 3046041: [Linux Views] Refactor accelerator handler related code. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Prevent ctrl+alt. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: views/widget/gtk_views_window.cc
diff --git a/views/widget/gtk_views_window.cc b/views/widget/gtk_views_window.cc
index fb3657d0582083fd7c6d927177a73eb154dd7d0b..2eff8f11c03fe68a5628525518543d6ae91bcbb4 100644
--- a/views/widget/gtk_views_window.cc
+++ b/views/widget/gtk_views_window.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <gtk/gtk.h>
+#include "views/event.h"
#include "views/widget/gtk_views_window.h"
#include "views/focus/focus_manager.h"
@@ -9,15 +11,16 @@ G_BEGIN_DECLS
G_DEFINE_TYPE(GtkViewsWindow, gtk_views_window, GTK_TYPE_WINDOW)
-static void gtk_views_window_move_focus(GtkWindow *window,
+static void gtk_views_window_move_focus(GtkWindow* window,
GtkDirectionType dir) {
views::FocusManager* focus_manager =
views::FocusManager::GetFocusManagerForNativeWindow(window);
if (focus_manager) {
- // We only support tab traversing by tab keys, so just ignore all other
- // cases silently.
- if (dir == GTK_DIR_TAB_BACKWARD || dir == GTK_DIR_TAB_FORWARD)
- focus_manager->AdvanceFocus(dir == GTK_DIR_TAB_BACKWARD);
+ GdkEvent* key = gtk_get_current_event();
+ if (key && key->type == GDK_KEY_PRESS) {
+ views::KeyEvent key_event(reinterpret_cast<GdkEventKey*>(key));
+ focus_manager->OnKeyEvent(key_event);
+ }
} else if (GTK_WINDOW_CLASS(gtk_views_window_parent_class)->move_focus) {
GTK_WINDOW_CLASS(gtk_views_window_parent_class)->move_focus(window, dir);
}

Powered by Google App Engine
This is Rietveld 408576698