Fixed issue where TreeItems can be cropped because their overflow is set to hidden.
Patch by: jlabanca
Review by: jgw (desk review)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2410 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/TreeItem.java b/user/src/com/google/gwt/user/client/ui/TreeItem.java
index 4d986c3..5268c6b 100644
--- a/user/src/com/google/gwt/user/client/ui/TreeItem.java
+++ b/user/src/com/google/gwt/user/client/ui/TreeItem.java
@@ -67,6 +67,8 @@
} else {
UIObject.setVisible(curItem.childSpanElem, false);
}
+ DOM.setStyleAttribute(curItem.childSpanElem, "overflow", "visible");
+ DOM.setStyleAttribute(curItem.childSpanElem, "width", "auto");
curItem = null;
}
}
@@ -79,6 +81,7 @@
@Override
public void onStart() {
+ DOM.setStyleAttribute(curItem.childSpanElem, "overflow", "hidden");
onUpdate(0.0);
if (opening) {
UIObject.setVisible(curItem.childSpanElem, true);
@@ -94,6 +97,11 @@
height = scrollHeight - height;
}
DOM.setStyleAttribute(curItem.childSpanElem, "height", height + "px");
+
+ // We need to set the width explicitly of the item might be cropped
+ int scrollWidth = DOM.getElementPropertyInt(curItem.childSpanElem,
+ "scrollWidth");
+ DOM.setStyleAttribute(curItem.childSpanElem, "width", scrollWidth + "px");
}
/**
@@ -110,7 +118,7 @@
curItem = item;
opening = item.open;
if (animate) {
- run(350);
+ run(Math.min(200, 75 * curItem.getChildCount()));
} else {
onInstantaneousRun();
}
@@ -169,7 +177,7 @@
DOM.setStyleAttribute(contentElem, "display", "inline");
DOM.setStyleAttribute(getElement(), "whiteSpace", "nowrap");
DOM.setStyleAttribute(childSpanElem, "whiteSpace", "nowrap");
- DOM.setStyleAttribute(childSpanElem, "overflow", "hidden");
+ DOM.setStyleAttribute(childSpanElem, "padding", "0px");
setStyleName(contentElem, "gwt-TreeItem", true);
Accessibility.setRole(contentElem, Accessibility.ROLE_TREEITEM);