* Widget wrapper includes margin which the widget offsetWidth/Height
* does not include
*/
- int w = widgetDIV.getOffsetWidth();
- int h = widgetDIV.getOffsetHeight();
+ int w = getRequiredWidth(widgetDIV);
+ int h = getRequiredHeight(widgetDIV);
+
widgetSize.setWidth(w);
widgetSize.setHeight(h);
}
+ public static native int getRequiredWidth(
+ com.google.gwt.dom.client.Element element)
+ /*-{
+ var width;
+ if (element.getBoundingClientRect != null) {
+ var rect = element.getBoundingClientRect();
+ width = Math.ceil(rect.right - rect.left);
+ } else {
+ width = elem.offsetWidth;
+ }
+ return width;
+ }-*/;
+
+ public static native int getRequiredHeight(
+ com.google.gwt.dom.client.Element element)
+ /*-{
+ var height;
+ if (element.getBoundingClientRect != null) {
+ var rect = element.getBoundingClientRect();
+ height = Math.ceil(rect.bottom - rect.top);
+ } else {
+ height = elem.offsetHeight;
+ }
+ return height;
+ }-*/;
+
public void setMarginLeft(int marginLeft) {
containerMarginLeft = marginLeft;
getElement().getStyle().setPropertyPx("paddingLeft", marginLeft);