diff options
author | suzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-20 23:07:48 +0000 |
---|---|---|
committer | suzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-20 23:07:48 +0000 |
commit | ccbb7b6ec086e614efa111ecb5e51cb0ef1730ed (patch) | |
tree | 8b460140e85bd82af24f8b6a8ddbe334098cd2ae /views/widget/gtk_views_window.h | |
parent | 9d3fd748881fc6b4000efea6471b90aead6b5eb1 (diff) | |
download | chromium_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.h | 43 |
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 |