From a1f23ea17e1f6af119d85c095d445dac56d4432a Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Thu, 28 Aug 2008 13:36:56 +0000 Subject: [PATCH] Testcase and fix for #1923 - IE6 panel width problem svn changeset:5291/svn branch:trunk --- .../terminal/gwt/client/ui/IPanel.java | 20 +++++++++ .../toolkit/tests/tickets/Ticket1923.java | 41 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/com/itmill/toolkit/tests/tickets/Ticket1923.java diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java index 7c2171cbfb..37fb6feca8 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java @@ -238,6 +238,26 @@ public class IPanel extends SimplePanel implements Paintable, } public void iLayout(boolean runGeckoFix) { + + // IE6 width fix + if (BrowserInfo.get().isIE6()) { + int captionOffsetWidth = DOM.getElementPropertyInt(captionNode, + "offsetWidth"); + int borderWidthGuess = 200; + int widthGuess = captionOffsetWidth - borderWidthGuess; + DOM.setStyleAttribute(contentNode, "width", widthGuess + "px"); + + int actualBorder = DOM.getElementPropertyInt(contentNode, + "offsetWidth") + - widthGuess; + if (actualBorder != borderWidthGuess) { + int realWidthIncludingBorder = captionOffsetWidth + - actualBorder; + DOM.setStyleAttribute(contentNode, "width", + realWidthIncludingBorder + "px"); + } + } + if (height != null && height != "") { final boolean hasChildren = getWidget() != null; Element contentEl = null; diff --git a/src/com/itmill/toolkit/tests/tickets/Ticket1923.java b/src/com/itmill/toolkit/tests/tickets/Ticket1923.java new file mode 100644 index 0000000000..ed77fdc13b --- /dev/null +++ b/src/com/itmill/toolkit/tests/tickets/Ticket1923.java @@ -0,0 +1,41 @@ +package com.itmill.toolkit.tests.tickets; + +import com.itmill.toolkit.ui.Label; +import com.itmill.toolkit.ui.Panel; +import com.itmill.toolkit.ui.Window; + +public class Ticket1923 extends com.itmill.toolkit.Application { + + private static final int ROWS = 1; + + private Panel p; + + public void init() { + final Window main = new Window(getClass().getName().substring( + getClass().getName().lastIndexOf(".") + 1)); + setMainWindow(main); + + p = new Panel("TestPanel"); + // p.getLayout().setWidth("100%"); + p.setScrollable(true); + // p.setLayout(new GridLayout(1, 100)); + for (int i = 0; i < ROWS; i++) { + p + .addComponent(new Label( + "Label" + + i + + " 5067w09adsfasdjfahlsdfjhalfjhaldjfhalsjdfhlajdhflajhdfljahdslfjahldsjfhaljdfhaljfdhlajsdhflajshdflkajhsdlfkjahsldfkjahsldfhalskjfdhlksjfdh857idifhaljsdfhlajsdhflajhdflajhdfljahldfjhaljdfhalsjdfhalkjdhflkajhdfljahsdlfjahlsdjfhaldjfhaljfdhlajdhflajshdfljahsdlfjhalsjdfhalskjhfdlhusfglksuhdflgjshflgjhslfghslfjghsljfglsjhfglsjhfgljshfgljshflgjhslfghsljfgsljdfglsdjhfglsjhflgkjshfldjgh")); + } + //main.getLayout().setSizeFull(); + + p.setHeight("300px"); + p.setWidth("250px"); + //p.setWidth("50%"); + + p.setScrollTop(100); + p.setScrollLeft(100); + + main.addComponent(p); + + } +} \ No newline at end of file -- 2.39.5