int scrollPosition = getScrollY();
int w = getWidth() - getStyle().getPadding(LEFT) - getStyle().getPadding(RIGHT);
int h = getHeight() - getStyle().getPadding(TOP) - getStyle().getPadding(BOTTOM);
Rectangle view = new Rectangle(getScrollX(), getScrollY(), w, h);
int relativeX = rect.getX();
int relativeY = rect.getY();
// component needs to be in absolute coordinates...
Container parent = null;
if (coordinateSpace != null) {
parent = coordinateSpace.getParent();
}
if (parent == this) {
if (view.contains(rect)) {
return;
}
} else {
while (parent != this) {
// mostly a special case for list
if (parent == null) {
relativeX = rect.getX();
relativeY = rect.getY();
break;
}
relativeX += parent.getX();
relativeY += parent.getY();
parent = parent.getParent();
}
if (view.contains(relativeX, relativeY, rect.getSize().getWidth(), rect.getSize().getHeight())) {
return;
}
}
if (getScrollX() > relativeX) {
setScrollX(relativeX);