import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
-import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
+import com.vaadin.terminal.gwt.client.VCaption;
import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;
import com.vaadin.terminal.gwt.client.RenderInformation.Size;
import com.vaadin.terminal.gwt.client.ui.AlignmentInfo;
newCaption.setHeight("18px");
// newCaption.setHeight(newCaption.getHeight()); // This might
// be better... ??
+ if (BrowserInfo.get().isIE()) {
+ /*
+ * Must attach caption here so IE sends an immediate onload
+ * event for images coming from the cache
+ */
+ setCaption(newCaption);
+ }
}
boolean positionChanged = newCaption.updateCaption(uidl);
--- /dev/null
+package com.vaadin.tests.components.caption;
+
+import com.vaadin.terminal.ThemeResource;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.GridLayout;
+import com.vaadin.ui.Label;
+
+public class LargeCaptionIcon extends TestBase {
+
+ @Override
+ protected String getDescription() {
+ return "The icon should be completetly visible on both initial load and after subsequent refreshes.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 2902;
+ }
+
+ @Override
+ protected void setup() {
+ GridLayout gl = new GridLayout();
+ gl.setWidth("100%");
+
+ Label l = new Label("This is a label");
+ l.setCaption("This is its caption, it also has a large icon");
+ l.setIcon(new ThemeResource("../runo/icons/64/ok.png"));
+ gl.addComponent(l);
+ addComponent(gl);
+ }
+}