summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-06-10 16:26:35 +0300
committerVaadin Code Review <review@vaadin.com>2015-06-10 14:06:43 +0000
commit4bc734e56af463d657044b48aef58859786c81dd (patch)
tree68ff979122830d755bd0c2a304b552d74b470d2f
parent3eee8991a2e2798b16f587b9e5fca426627e3132 (diff)
downloadvaadin-framework-4bc734e56af463d657044b48aef58859786c81dd.tar.gz
vaadin-framework-4bc734e56af463d657044b48aef58859786c81dd.zip
Add a workaround to not display a spacer just scrolled to view (#17826)
Change-Id: I22805530cca26a23a6cc15c94b396aaba1f1245b
-rw-r--r--client/src/com/vaadin/client/widgets/Escalator.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/client/src/com/vaadin/client/widgets/Escalator.java b/client/src/com/vaadin/client/widgets/Escalator.java
index 3990683e64..7cce34fa22 100644
--- a/client/src/com/vaadin/client/widgets/Escalator.java
+++ b/client/src/com/vaadin/client/widgets/Escalator.java
@@ -4845,9 +4845,17 @@ public class Escalator extends Widget implements RequiresResize,
final double bodyBottom, final double decoWidth) {
final int top = deco.getAbsoluteTop();
final int bottom = deco.getAbsoluteBottom();
+ /*
+ * FIXME
+ *
+ * Height and its use is a workaround for the issue where
+ * coordinates of the deco are not calculated yet. This will
+ * prevent a deco from being displayed when it's added to DOM
+ */
+ final int height = bottom - top;
if (top < bodyTop || bottom > bodyBottom) {
final double topClip = Math.max(0.0D, bodyTop - top);
- final double bottomClip = decoHeight
+ final double bottomClip = height
- Math.max(0.0D, bottom - bodyBottom);
// TODO [optimize] not sure how GWT compiles this
final String clip = new StringBuilder("rect(")
@@ -4903,6 +4911,8 @@ public class Escalator extends Widget implements RequiresResize,
} else if (spacerExists(rowIndex)) {
removeSpacer(rowIndex);
}
+
+ updateSpacerDecosVisibility();
}
/** Checks if a given element is a spacer element */
@@ -4994,8 +5004,6 @@ public class Escalator extends Widget implements RequiresResize,
spacerScrollerRegistration.removeHandler();
spacerScrollerRegistration = null;
}
-
- updateSpacerDecosVisibility();
}
public Map<Integer, SpacerImpl> getSpacers() {
@@ -5306,7 +5314,6 @@ public class Escalator extends Widget implements RequiresResize,
initSpacerContent(spacer);
body.sortDomElements();
- updateSpacerDecosVisibility();
}
private void updateExistingSpacer(int rowIndex, double newHeight) {