Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1097)

Unified Diff: chrome/browser/views/tabs/tab_overview_controller.cc

Issue 151169: Improves tab overview. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+}
« no previous file with comments | « chrome/browser/views/tabs/tab_overview_controller.h ('k') | chrome/browser/views/tabs/tab_overview_drag_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698