diff options
author | denisanisimov <denis@vaadin.com> | 2013-08-06 16:19:40 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-08-07 05:22:38 +0000 |
commit | 2d5a10718e1ef794e223a143f387595c0ef68ca4 (patch) | |
tree | 83ad513f653ce785ee905ec27214721a6bc69e3c /client | |
parent | 7212e02a9b4eb02759f7b2195187a6e6db6bfb33 (diff) | |
download | vaadin-framework-2d5a10718e1ef794e223a143f387595c0ef68ca4.tar.gz vaadin-framework-2d5a10718e1ef794e223a143f387595c0ef68ca4.zip |
Update "lastRequestedFirstvisible" field value right away (#10666).
Change-Id: Idef31fa74f4720b5c55511de0545cd8ae1b77b26
Diffstat (limited to 'client')
-rw-r--r-- | client/src/com/vaadin/client/ui/VScrollTable.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/client/src/com/vaadin/client/ui/VScrollTable.java b/client/src/com/vaadin/client/ui/VScrollTable.java index 2d177f29b5..3733ee204a 100644 --- a/client/src/com/vaadin/client/ui/VScrollTable.java +++ b/client/src/com/vaadin/client/ui/VScrollTable.java @@ -1123,6 +1123,9 @@ public class VScrollTable extends FlowPanel implements HasWidgets, if (firstvisible != lastRequestedFirstvisible && scrollBody != null) { // received 'surprising' firstvisible from server: scroll there firstRowInViewPort = firstvisible; + // Update lastRequestedFirstvisible right away here + // (don't rely on update in the timer which could be cancelled). + lastRequestedFirstvisible = firstRowInViewPort; /* * Schedule the scrolling to be executed last so no updates to the @@ -2406,12 +2409,16 @@ public class VScrollTable extends FlowPanel implements HasWidgets, firstToBeRendered, false); client.updateVariable(paintableId, "lastToBeRendered", lastToBeRendered, false); - // remember which firstvisible we requested, in case the server - // has - // a differing opinion - lastRequestedFirstvisible = firstRowInViewPort; - client.updateVariable(paintableId, "firstvisible", - firstRowInViewPort, false); + + // don't request server to update page first index in case it + // has not been changed + if (firstRowInViewPort != firstvisible) { + // remember which firstvisible we requested, in case the + // server has a differing opinion + lastRequestedFirstvisible = firstRowInViewPort; + client.updateVariable(paintableId, "firstvisible", + firstRowInViewPort, false); + } client.updateVariable(paintableId, "reqfirstrow", reqFirstRow, false); client.updateVariable(paintableId, "reqrows", reqRows, true); |