From: Matti Tahvonen Date: Mon, 30 Nov 2009 08:35:34 +0000 (+0000) Subject: fixes #3784 X-Git-Tag: 6.7.0.beta1~2227 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d151afb2a1af6f83b6e13e3fee7873ca91cc6162;p=vaadin-framework.git fixes #3784 svn changeset:10100/svn branch:6.2 --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java index bec26ada7d..f9da8f67d9 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java @@ -78,6 +78,7 @@ public class VPanel extends SimplePanel implements Container { private ClickEventHandler clickEventHandler = new ClickEventHandler(this, CLICK_EVENT_IDENTIFIER) { + @Override protected HandlerRegistration registerHandler( H handler, Type type) { @@ -206,13 +207,21 @@ public class VPanel extends SimplePanel implements Container { if (uidl.hasVariable("scrollTop") && uidl.getIntVariable("scrollTop") != scrollTop) { scrollTop = uidl.getIntVariable("scrollTop"); - DOM.setElementPropertyInt(contentNode, "scrollTop", scrollTop); + contentNode.setScrollTop(scrollTop); + // re-read the actual scrollTop in case invalid value was set + // (scrollTop != 0 when no scrollbar exists, other values would be + // caught by scroll listener), see #3784 + scrollTop = contentNode.getScrollTop(); } if (uidl.hasVariable("scrollLeft") && uidl.getIntVariable("scrollLeft") != scrollLeft) { scrollLeft = uidl.getIntVariable("scrollLeft"); - DOM.setElementPropertyInt(contentNode, "scrollLeft", scrollLeft); + contentNode.setScrollLeft(scrollLeft); + // re-read the actual scrollTop in case invalid value was set + // (scrollTop != 0 when no scrollbar exists, other values would be + // caught by scroll listener), see #3784 + scrollLeft = contentNode.getScrollLeft(); } rendering = false;