summaryrefslogtreecommitdiffstats
path: root/views/focus
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-19 20:34:49 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-19 20:34:49 +0000
commitb4f154d92b13522ff4d53d8a5bcd8eceec4a9709 (patch)
treed589a20a2c8221e95424b71d5d0e6990adcd5c69 /views/focus
parent359d2bf31d2edc43a9ca8b08ee07707038efce09 (diff)
downloadchromium_src-b4f154d92b13522ff4d53d8a5bcd8eceec4a9709.zip
chromium_src-b4f154d92b13522ff4d53d8a5bcd8eceec4a9709.tar.gz
chromium_src-b4f154d92b13522ff4d53d8a5bcd8eceec4a9709.tar.bz2
Fixes crash in focus that occurs if Focus ends up deleting/removing
the view. BUG=61963 TEST=see bug Review URL: http://codereview.chromium.org/5227003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66809 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/focus')
-rw-r--r--views/focus/focus_manager.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/views/focus/focus_manager.cc b/views/focus/focus_manager.cc
index 3751ace..2007ff1 100644
--- a/views/focus/focus_manager.cc
+++ b/views/focus/focus_manager.cc
@@ -313,7 +313,11 @@ void FocusManager::SetFocusedViewWithReason(
if (view) {
view->SchedulePaint();
view->Focus();
- view->DidGainFocus();
+ if (view == focused_view_) {
+ // Only tell the view it is focused if it's still our focused view. It's
+ // possible for Focus to remove/delete the view.
+ view->DidGainFocus();
+ }
}
}