| Index: chrome/browser/views/tabs/tab_overview_controller.cc
|
| ===================================================================
|
| --- chrome/browser/views/tabs/tab_overview_controller.cc (revision 19730)
|
| +++ chrome/browser/views/tabs/tab_overview_controller.cc (working copy)
|
| @@ -11,6 +11,7 @@
|
| #include "chrome/browser/tab_contents/thumbnail_generator.h"
|
| #include "chrome/browser/views/tabs/tab_overview_cell.h"
|
| #include "chrome/browser/views/tabs/tab_overview_container.h"
|
| +#include "chrome/browser/views/tabs/tab_overview_drag_controller.h"
|
| #include "chrome/browser/views/tabs/tab_overview_grid.h"
|
| #include "chrome/browser/views/tabs/tab_overview_types.h"
|
| #include "chrome/browser/window_sizer.h"
|
| @@ -85,21 +86,38 @@
|
| browser_ = browser;
|
| if (browser_)
|
| model()->AddObserver(this);
|
| +
|
| + show_thumbnails_ = false;
|
| + StartDelayTimer();
|
| +
|
| gfx::Rect host_bounds = CalculateHostBounds();
|
| if (moved_offscreen_ && model() && model()->count()) {
|
| // Need to reset the bounds if we were offscreen.
|
| host_->SetBounds(host_bounds);
|
| moved_offscreen_ = false;
|
| + } else if (!model() && shown_) {
|
| + MoveOffscreen();
|
| }
|
| + if (!moved_offscreen_)
|
| + container_->SchedulePaint();
|
| +
|
| RecreateCells();
|
|
|
| container_->set_arrow_center(horizontal_center_ - host_bounds.x());
|
| +
|
| + if (!moved_offscreen_)
|
| + container_->SchedulePaint();
|
| }
|
|
|
| TabStripModel* TabOverviewController::model() const {
|
| return browser_ ? browser_->tabstrip_model() : NULL;
|
| }
|
|
|
| +void TabOverviewController::SetMouseOverMiniWindow(bool over_mini_window) {
|
| + if (grid_->drag_controller())
|
| + grid_->drag_controller()->set_mouse_over_mini_window(over_mini_window);
|
| +}
|
| +
|
| void TabOverviewController::Show() {
|
| if (host_->IsVisible())
|
| return;
|
| @@ -107,9 +125,9 @@
|
| shown_ = true;
|
| DCHECK(model()); // The model needs to be set before showing.
|
| host_->Show();
|
| - delay_timer_.Start(
|
| - base::TimeDelta::FromMilliseconds(350), this,
|
| - &TabOverviewController::StartConfiguring);
|
| +
|
| + show_thumbnails_ = false;
|
| + StartDelayTimer();
|
| }
|
|
|
| void TabOverviewController::ConfigureCell(TabOverviewCell* cell,
|
| @@ -321,6 +339,7 @@
|
|
|
| void TabOverviewController::StartConfiguring() {
|
| show_thumbnails_ = true;
|
| + configure_timer_.Stop();
|
| configure_timer_.Start(
|
| base::TimeDelta::FromMilliseconds(10), this,
|
| &TabOverviewController::ConfigureNextUnconfiguredCell);
|
| @@ -336,3 +355,11 @@
|
| }
|
| configure_timer_.Stop();
|
| }
|
| +
|
| +void TabOverviewController::StartDelayTimer() {
|
| + configure_timer_.Stop();
|
| + delay_timer_.Stop();
|
| + delay_timer_.Start(
|
| + base::TimeDelta::FromMilliseconds(350), this,
|
| + &TabOverviewController::StartConfiguring);
|
| +}
|
|
|