summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/gtk/tabs/tab_gtk.cc14
-rw-r--r--chrome/browser/gtk/tabs/tab_gtk.h1
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.h2
3 files changed, 16 insertions, 1 deletions
diff --git a/chrome/browser/gtk/tabs/tab_gtk.cc b/chrome/browser/gtk/tabs/tab_gtk.cc
index 55062dc..02b1b03 100644
--- a/chrome/browser/gtk/tabs/tab_gtk.cc
+++ b/chrome/browser/gtk/tabs/tab_gtk.cc
@@ -270,6 +270,20 @@ void TabGtk::CloseButtonClicked() {
delegate_->CloseTab(this);
}
+void TabGtk::UpdateData(TabContents* contents, bool loading_only) {
+ TabRendererGtk::UpdateData(contents, loading_only);
+ std::wstring title = GetTitle();
+ if (!title.empty()) {
+ // Only show the tooltip if the title is truncated.
+ gfx::Font font;
+ if (font.GetStringWidth(title) > title_bounds().width()) {
+ gtk_widget_set_tooltip_text(widget(), WideToUTF8(title).c_str());
+ } else {
+ gtk_widget_set_has_tooltip(widget(), FALSE);
+ }
+ }
+}
+
///////////////////////////////////////////////////////////////////////////////
// TabGtk, private:
diff --git a/chrome/browser/gtk/tabs/tab_gtk.h b/chrome/browser/gtk/tabs/tab_gtk.h
index 6e2296e..195d04c 100644
--- a/chrome/browser/gtk/tabs/tab_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_gtk.h
@@ -81,6 +81,7 @@ class TabGtk : public TabRendererGtk {
virtual bool IsVisible() const;
virtual void SetVisible(bool visible) const;
virtual void CloseButtonClicked();
+ virtual void UpdateData(TabContents* contents, bool loading_only);
// The callback that is called for every gdk event. We use it to inspect for
// drag-motion events when the drag is outside of the source tab.
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
index 2cff947..4f555a1 100644
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
@@ -77,7 +77,7 @@ class TabRendererGtk : public AnimationDelegate {
// TabContents. If only the loading state was updated, the loading_only flag
// should be specified. If other things change, set this flag to false to
// update everything.
- void UpdateData(TabContents* contents, bool loading_only);
+ virtual void UpdateData(TabContents* contents, bool loading_only);
// Updates the display to reflect the contents of this TabRenderer's model.
void UpdateFromModel();