From: Jouni Koivuviita Date: Mon, 12 Oct 2009 10:44:12 +0000 (+0000) Subject: Fixes #3506: Width of DateField is shrinking when value is set programmatically. X-Git-Tag: 6.7.0.beta1~2417 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ad81d40557babcd27aba4074381ee63691750b61;p=vaadin-framework.git Fixes #3506: Width of DateField is shrinking when value is set programmatically. svn changeset:9163/svn branch:6.2 --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/VPopupCalendar.java b/src/com/vaadin/terminal/gwt/client/ui/VPopupCalendar.java index 413666b644..9b74167689 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VPopupCalendar.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VPopupCalendar.java @@ -50,6 +50,7 @@ public class VPopupCalendar extends VTextualDate implements Paintable, Field, @Override public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { + boolean lastReadOnlyState = readonly; super.updateFromUIDL(uidl, client); addStyleName(CLASSNAME + "-popupcalendar"); popup.setStyleName(VDateField.CLASSNAME + "-popup " @@ -60,7 +61,9 @@ public class VPopupCalendar extends VTextualDate implements Paintable, Field, } calendarToggle.setEnabled(enabled); - updateWidth(); + if (lastReadOnlyState != readonly) { + updateWidth(); + } } diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTextualDate.java b/src/com/vaadin/terminal/gwt/client/ui/VTextualDate.java index c1487f742b..af04890881 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTextualDate.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTextualDate.java @@ -302,8 +302,12 @@ public class VTextualDate extends VDateField implements Paintable, Field, */ protected int getFieldExtraWidth() { if (fieldExtraWidth < 0) { - text.setWidth("0px"); + text.setWidth("0"); fieldExtraWidth = text.getOffsetWidth(); + if (BrowserInfo.get().isFF3()) { + // Firefox somehow always leaves the INPUT element 2px wide + fieldExtraWidth -= 2; + } } return fieldExtraWidth; }