| Index: chrome/browser/views/frame/browser_view.cc
|
| ===================================================================
|
| --- chrome/browser/views/frame/browser_view.cc (revision 14954)
|
| +++ chrome/browser/views/frame/browser_view.cc (working copy)
|
| @@ -901,9 +901,8 @@
|
| // We do not store the focus when closing the tab to work-around bug 4633.
|
| // Some reports seem to show that the focus manager and/or focused view can
|
| // be garbage at that point, it is not clear why.
|
| - if (old_contents && !old_contents->is_being_destroyed() &&
|
| - old_contents->AsWebContents())
|
| - old_contents->AsWebContents()->view()->StoreFocus();
|
| + if (old_contents && !old_contents->is_being_destroyed())
|
| + old_contents->view()->StoreFocus();
|
|
|
| // Update various elements that are interested in knowing the current
|
| // TabContents.
|
| @@ -916,8 +915,10 @@
|
| new_contents->DidBecomeSelected();
|
| if (BrowserList::GetLastActive() == browser_ &&
|
| !browser_->tabstrip_model()->closing_all() &&
|
| - new_contents->AsWebContents()) {
|
| - new_contents->AsWebContents()->view()->RestoreFocus();
|
| + GetWidget()->GetWindow()->IsVisible()) {
|
| + // We only restore focus if our window is visible, to avoid invoking blur
|
| + // handlers when we are eventually shown.
|
| + new_contents->view()->RestoreFocus();
|
| }
|
|
|
| // Update all the UI bits.
|
|
|