summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-07 21:28:17 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-07 21:28:17 +0000
commit75f0bd6f774d472af5f31ff9483786bc9ee33b57 (patch)
treef0b3333ccfa431ea3074e5a25189520f884a66a3
parentb5f9845372bb2496aa6f6bd694e2ba4dc9523bde (diff)
downloadchromium_src-75f0bd6f774d472af5f31ff9483786bc9ee33b57.zip
chromium_src-75f0bd6f774d472af5f31ff9483786bc9ee33b57.tar.gz
chromium_src-75f0bd6f774d472af5f31ff9483786bc9ee33b57.tar.bz2
Set the focus change reason even if calling SetFocusedViewWithReason on a
view that already has focus. BUG=75100 TEST=Manual testing on Windows & Chrome OS Review URL: http://codereview.chromium.org/6627041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77183 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--views/focus/focus_manager.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/views/focus/focus_manager.cc b/views/focus/focus_manager.cc
index 8e130c9..86df1f0 100644
--- a/views/focus/focus_manager.cc
+++ b/views/focus/focus_manager.cc
@@ -287,14 +287,15 @@ void FocusManager::SetFocusedViewWithReason(
if (focused_view_ == view)
return;
- // Notified listeners that the focus will change.
+ // Update the reason for the focus change (since this is checked by
+ // some listeners), then notify all listeners.
+ focus_change_reason_ = reason;
FocusChangeListenerList::const_iterator iter;
for (iter = focus_change_listeners_.begin();
iter != focus_change_listeners_.end(); ++iter) {
(*iter)->FocusWillChange(focused_view_, view);
}
- focus_change_reason_ = reason;
if (focused_view_)
focused_view_->Blur();
focused_view_ = view;