summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/tabs
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/tabs')
-rw-r--r--chrome/browser/views/tabs/tab_strip.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/chrome/browser/views/tabs/tab_strip.cc b/chrome/browser/views/tabs/tab_strip.cc
index 3232ec4..7791289 100644
--- a/chrome/browser/views/tabs/tab_strip.cc
+++ b/chrome/browser/views/tabs/tab_strip.cc
@@ -1470,8 +1470,17 @@ void TabStrip::StartResizeLayoutAnimation() {
}
void TabStrip::StartInsertTabAnimation(int index) {
- // The TabStrip can now use its entire width to lay out Tabs.
- available_width_for_tabs_ = -1;
+ // Don't shock users by letting all tabs move when they are focused
+ // on the tab-strip. Wait for later, when they aren't looking.
+ int last_tab_index = GetTabCount() - 2;
+ if (last_tab_index > 0) {
+ Tab* last_tab = GetTabAt(last_tab_index);
+ available_width_for_tabs_ = std::min(
+ GetAvailableWidthForTabs(last_tab) + last_tab->width(),
+ width() - (kNewTabButtonHOffset + newtab_button_size_.width()));
+ } else {
+ available_width_for_tabs_ = -1;
+ }
if (active_animation_.get())
active_animation_->Stop();
active_animation_.reset(new InsertTabAnimation(this, index));