summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authordenisanisimov <denis@vaadin.com>2013-08-06 16:19:40 +0300
committerVaadin Code Review <review@vaadin.com>2013-08-07 05:22:38 +0000
commit2d5a10718e1ef794e223a143f387595c0ef68ca4 (patch)
tree83ad513f653ce785ee905ec27214721a6bc69e3c /client
parent7212e02a9b4eb02759f7b2195187a6e6db6bfb33 (diff)
downloadvaadin-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.java19
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);