summaryrefslogtreecommitdiffstats
path: root/views/widget/gtk_views_window.h
diff options
context:
space:
mode:
authorsuzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-20 23:07:48 +0000
committersuzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-20 23:07:48 +0000
commitccbb7b6ec086e614efa111ecb5e51cb0ef1730ed (patch)
tree8b460140e85bd82af24f8b6a8ddbe334098cd2ae /views/widget/gtk_views_window.h
parent9d3fd748881fc6b4000efea6471b90aead6b5eb1 (diff)
downloadchromium_src-ccbb7b6ec086e614efa111ecb5e51cb0ef1730ed.zip
chromium_src-ccbb7b6ec086e614efa111ecb5e51cb0ef1730ed.tar.gz
chromium_src-ccbb7b6ec086e614efa111ecb5e51cb0ef1730ed.tar.bz2
[Linux Views]Handle focus traversing correctly.
This CL adds a wrapper window class on top of GtkWindow to intercept its move_focus method, so that we can handle focus traversing by ourselves. BUG=49204: Chrome/views toolbar "tab" accessibility broken. TEST=See bug report. Review URL: http://codereview.chromium.org/3013006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53123 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/gtk_views_window.h')
-rw-r--r--views/widget/gtk_views_window.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/views/widget/gtk_views_window.h b/views/widget/gtk_views_window.h
new file mode 100644
index 0000000..0dd54be
--- /dev/null
+++ b/views/widget/gtk_views_window.h
@@ -0,0 +1,43 @@
+// Copyright (c) 2010 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.
+
+#ifndef VIEWS_WIDGET_GTK_VIEWS_WINDOW_H_
+#define VIEWS_WIDGET_GTK_VIEWS_WINDOW_H_
+
+#include <gtk/gtkwindow.h>
+
+// GtkViewsWindow is a subclass of GtkWindow that overrides its move_focus
+// method so that we can handle focus traversing by ourselves.
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_VIEWS_WINDOW (gtk_views_window_get_type ())
+#define GTK_VIEWS_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_VIEWS_WINDOW, GtkViewsWindow))
+#define GTK_VIEWS_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_VIEWS_WINDOW, \
+ GtkViewsWindowClass))
+#define GTK_IS_VIEWS_WINDOW(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_VIEWS_WINDOW))
+#define GTK_IS_VIEWS_WINDOW_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_VIEWS_WINDOW))
+#define GTK_VIEWS_WINDOW_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_VIEWS_WINDOW, GtkViewsWindow))
+
+typedef struct _GtkViewsWindow GtkViewsWindow;
+typedef struct _GtkViewsWindowClass GtkViewsWindowClass;
+
+struct _GtkViewsWindow {
+ GtkWindow window;
+};
+
+struct _GtkViewsWindowClass {
+ GtkWindowClass parent_class;
+};
+
+GtkWidget* gtk_views_window_new(GtkWindowType type);
+
+G_END_DECLS
+
+#endif // VIEWS_WIDGET_GTK_VIEWS_WINDOW_H