From 7334a8f060de0bd1fde66344783ff3ed365a55d1 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 4 May 2009 08:56:54 +0000 Subject: Fix for #2880 - IE7: Tabsheet caption texts too short when using icons svn changeset:7608/svn branch:6.0 --- .../toolkit/terminal/gwt/client/ICaption.java | 4 ++++ .../toolkit/terminal/gwt/client/ui/ITabsheet.java | 23 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'src') diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java b/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java index d3e12769ad..f83bd035bb 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ICaption.java @@ -436,4 +436,8 @@ public class ICaption extends HTML { } } + protected Element getTextElement() { + return captionText; + } + } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java index 519ec6034a..e40b6ac0a8 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java @@ -45,6 +45,29 @@ public class ITabsheet extends ITabsheetBase { } } + @Override + public void setWidth(String width) { + super.setWidth(width); + if (BrowserInfo.get().isIE7()) { + /* + * IE7 apparently has problems with calculating width for + * floated elements inside a DIV with padding. Set the width + * explicitly for the caption. + */ + fixTextWidth(); + } + } + + private void fixTextWidth() { + Element captionText = getTextElement(); + int captionWidth = Util.getRequiredWidth(captionText); + int scrollWidth = captionText.getScrollWidth(); + if (scrollWidth > captionWidth) { + captionWidth = scrollWidth; + } + captionText.getStyle().setPropertyPx("width", captionWidth); + } + } class TabBar extends ComplexPanel implements ClickListener { -- cgit v1.2.3