diff options
author | Teemu Suo-Anttila <teemusa@vaadin.com> | 2015-06-10 16:26:35 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-06-10 14:06:43 +0000 |
commit | 4bc734e56af463d657044b48aef58859786c81dd (patch) | |
tree | 68ff979122830d755bd0c2a304b552d74b470d2f | |
parent | 3eee8991a2e2798b16f587b9e5fca426627e3132 (diff) | |
download | vaadin-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.java | 15 |
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) { |