diff options
Diffstat (limited to 'chrome/browser/views/tabs')
-rw-r--r-- | chrome/browser/views/tabs/tab_strip.cc | 13 |
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)); |