summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/views/tabs/base_tab_strip.cc8
-rw-r--r--chrome/browser/ui/views/tabs/base_tab_strip.h5
-rw-r--r--chrome/browser/ui/views/tabs/side_tab_strip.cc5
-rw-r--r--chrome/browser/ui/views/tabs/side_tab_strip.h1
4 files changed, 17 insertions, 2 deletions
diff --git a/chrome/browser/ui/views/tabs/base_tab_strip.cc b/chrome/browser/ui/views/tabs/base_tab_strip.cc
index f3aa782..0ae0873 100644
--- a/chrome/browser/ui/views/tabs/base_tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/base_tab_strip.cc
@@ -464,12 +464,16 @@ void BaseTabStrip::RemoveAndDeleteTab(BaseTab* tab) {
UpdateCommonTitlePrefix();
}
+bool BaseTabStrip::IgnoreTitlePrefixEliding(BaseTab* tab) {
+ DCHECK(tab != NULL);
+ return tab->data().mini || tab->data().title.empty();
+}
+
void BaseTabStrip::UpdateCommonTitlePrefix() {
std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos;
for (int tab_index = 0; tab_index < tab_count(); ++tab_index) {
DCHECK(tab_data_[tab_index].tab != NULL);
- if (!tab_data_[tab_index].tab->data().mini &&
- !tab_data_[tab_index].tab->data().title.empty()) {
+ if (!IgnoreTitlePrefixEliding(tab_data_[tab_index].tab)) {
tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(
&tab_data_[tab_index].tab->data().title, tab_index));
}
diff --git a/chrome/browser/ui/views/tabs/base_tab_strip.h b/chrome/browser/ui/views/tabs/base_tab_strip.h
index 18b1c1a..fe1a586 100644
--- a/chrome/browser/ui/views/tabs/base_tab_strip.h
+++ b/chrome/browser/ui/views/tabs/base_tab_strip.h
@@ -197,6 +197,11 @@ class BaseTabStrip : public AbstractTabStripView,
tab_data_[index].ideal_bounds = bounds;
}
+ // Identifies whether we should ignore title prefix eliding or not
+ // for the specified tab. This allows derived class like the one
+ // for side tabs to make a different choice (e.g., for mini tabs).
+ virtual bool IgnoreTitlePrefixEliding(BaseTab* tab);
+
// Update the lengths of common title prefixes for all tabs. This needs
// to be done every time tabs are added/removed or when titles change.
virtual void UpdateCommonTitlePrefix();
diff --git a/chrome/browser/ui/views/tabs/side_tab_strip.cc b/chrome/browser/ui/views/tabs/side_tab_strip.cc
index ca8667f..e6ea0d2 100644
--- a/chrome/browser/ui/views/tabs/side_tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/side_tab_strip.cc
@@ -154,6 +154,11 @@ BaseTab* SideTabStrip::CreateTab() {
return new SideTab(this);
}
+bool SideTabStrip::IgnoreTitlePrefixEliding(BaseTab* tab) {
+ DCHECK(tab != NULL);
+ return tab->data().title.empty();
+}
+
void SideTabStrip::GenerateIdealBounds() {
gfx::Rect layout_rect = GetContentsBounds();
layout_rect.Inset(kTabStripInset, kTabStripInset);
diff --git a/chrome/browser/ui/views/tabs/side_tab_strip.h b/chrome/browser/ui/views/tabs/side_tab_strip.h
index e39f13c..d0d95ca 100644
--- a/chrome/browser/ui/views/tabs/side_tab_strip.h
+++ b/chrome/browser/ui/views/tabs/side_tab_strip.h
@@ -37,6 +37,7 @@ class SideTabStrip : public BaseTabStrip {
protected:
// BaseTabStrip overrides:
virtual BaseTab* CreateTab() OVERRIDE;
+ virtual bool IgnoreTitlePrefixEliding(BaseTab* tab) OVERRIDE;
virtual void GenerateIdealBounds() OVERRIDE;
virtual void StartInsertTabAnimation(int model_index,
bool foreground) OVERRIDE;