diff options
author | yutak@chromium.org <yutak@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-12 23:52:20 +0000 |
---|---|---|
committer | yutak@chromium.org <yutak@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-12 23:52:20 +0000 |
commit | 6d21eb72d7333889badc108afe21dd1bc52e1135 (patch) | |
tree | a45694ee7b3b43fffc8db3dbe113c4ab52e246b9 /views/widget/widget_win.cc | |
parent | 8e0c43541d22b356b7eac90cfce4a4ebdd69c8f1 (diff) | |
download | chromium_src-6d21eb72d7333889badc108afe21dd1bc52e1135.zip chromium_src-6d21eb72d7333889badc108afe21dd1bc52e1135.tar.gz chromium_src-6d21eb72d7333889badc108afe21dd1bc52e1135.tar.bz2 |
Fix reversed focus traversal order issue.
This change fixes several problems in handling focus traversal and resolves TabbedPane's traversal order issue.
Reversed focus traversal is very tricky, and the original traversal code overlooked several things.
(1) A focusable view may have a FocusTraverasble.
(2) When we are going down, we have to check if the current view has a FocusTraversable.
(3) When we are going up from a FocusTraversable, the parent view may gain the next focus.
This change fixes these issues.
BUG=6871
TEST=See issue 6871.
Review URL: http://codereview.chromium.org/125062
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18335 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/widget_win.cc')
-rw-r--r-- | views/widget/widget_win.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/views/widget/widget_win.cc b/views/widget/widget_win.cc index 7d8aced..d4cd460 100644 --- a/views/widget/widget_win.cc +++ b/views/widget/widget_win.cc @@ -475,12 +475,13 @@ void WidgetWin::DidProcessMessage(const MSG& msg) { // FocusTraversable View* WidgetWin::FindNextFocusableView( - View* starting_view, bool reverse, Direction direction, bool dont_loop, - FocusTraversable** focus_traversable, View** focus_traversable_view) { + View* starting_view, bool reverse, Direction direction, + bool check_starting_view, FocusTraversable** focus_traversable, + View** focus_traversable_view) { return root_view_->FindNextFocusableView(starting_view, reverse, direction, - dont_loop, + check_starting_view, focus_traversable, focus_traversable_view); } |