From: Matti Tahvonen Date: Mon, 13 Aug 2007 05:07:03 +0000 (+0000) Subject: fix to scroll pos announcement X-Git-Tag: 6.7.0.beta1~6119 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6b9a5d4613edf072a5a1a94d7f19a9212ac65697;p=vaadin-framework.git fix to scroll pos announcement svn changeset:1985/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java index c1d97ed2b2..c1a96c2a99 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java @@ -477,13 +477,6 @@ public class IScrollTable extends Composite implements Paintable, ITable, Scroll int lastRendered = tBody.getLastRendered(); int firstRendered = tBody.getFirstRendered(); - // tell scroll position to user if currently "visible" rows are not rendered - if( (lastRendered < firstRowInViewPort + pageLength) || - (firstRowInViewPort < firstRendered)) { - announceScrollPosition(); - } - - if( postLimit <= lastRendered && preLimit >= firstRendered ) { client.updateVariable(this.paintableId, "firstvisible", firstRowInViewPort, false); return; // scrolled withing "non-react area" @@ -536,8 +529,12 @@ public class IScrollTable extends Composite implements Paintable, ITable, Scroll DOM.getIntAttribute(getElement(), "offsetHeight")/2 - 20 ) + "px"); + + int last = (firstRowInViewPort + pageLength); + if(last > totalRows) + last = totalRows; DOM.setInnerHTML(scrollPositionElement, - firstRowInViewPort + " - " + (firstRowInViewPort + pageLength) + "..."); + firstRowInViewPort + " - " + last + "..."); DOM.setStyleAttribute(scrollPositionElement, "display", "block"); } @@ -552,8 +549,17 @@ public class IScrollTable extends Composite implements Paintable, ITable, Scroll private int reqRows = 0; public void deferRowFetch() { - if(reqRows > 0 && reqFirstRow < totalRows) + if(reqRows > 0 && reqFirstRow < totalRows) { schedule(250); + + // tell scroll position to user if currently "visible" rows are not rendered + if( (firstRowInViewPort + pageLength > tBody.getLastRendered()) || + (firstRowInViewPort < tBody.getFirstRendered())) { + announceScrollPosition(); + } else { + hideScrollPositionAnnotation(); + } + } } public void setReqFirstRow(int reqFirstRow) {