summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/frame/browser_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui/views/frame/browser_view.cc')
-rw-r--r--chrome/browser/ui/views/frame/browser_view.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 25d8467..2629725 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1362,11 +1362,24 @@ void BrowserView::ToggleTabStripMode() {
frame_->TabStripDisplayModeChanged();
}
+void BrowserView::PrepareForInstant() {
+ contents_->FadeActiveContents();
+}
+
void BrowserView::ShowInstant(TabContents* preview_contents) {
if (!preview_container_)
preview_container_ = new TabContentsContainer();
contents_->SetPreview(preview_container_, preview_contents);
preview_container_->ChangeTabContents(preview_contents);
+
+#if defined(OS_WIN)
+ // Removing the fade is instant (on windows). We need to force the preview to
+ // draw, otherwise the current page flickers before the new page appears.
+ RedrawWindow(preview_contents->view()->GetContentNativeView(), NULL, NULL,
+ RDW_INVALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN);
+#endif
+
+ contents_->RemoveFade();
}
void BrowserView::HideInstant() {
@@ -1378,6 +1391,7 @@ void BrowserView::HideInstant() {
contents_->SetPreview(NULL, NULL);
delete preview_container_;
preview_container_ = NULL;
+ contents_->RemoveFade();
}
gfx::Rect BrowserView::GetInstantBounds() {