Browse Source

Makes IE8 use the correct property in scroll event object

Change-Id: Ida17ddc9675ab276f29d5fed9cef9cec567e0eae
tags/7.2.0.beta1
Henrik Paul 10 years ago
parent
commit
d5cfa012ae

+ 5
- 3
client/src/com/vaadin/client/ui/grid/Escalator.java View File

@@ -567,15 +567,17 @@ public class Escalator extends Widget {
var hScrollElem = hScroll.@com.vaadin.client.ui.grid.ScrollbarBundle::getElement()();

return $entry(function(e) {
var target = e.target || e.srcElement; // IE8 uses e.scrElement
// in case the scroll event was native (i.e. scrollbars were dragged, or
// the scrollTop/Left was manually modified), the bundles have old cache
// values. We need to make sure that the caches are kept up to date.
if (e.target === vScrollElem) {
if (target === vScrollElem) {
vScroll.@com.vaadin.client.ui.grid.ScrollbarBundle::updateScrollPosFromDom()();
} else if (e.target === hScrollElem) {
} else if (target === hScrollElem) {
hScroll.@com.vaadin.client.ui.grid.ScrollbarBundle::updateScrollPosFromDom()();
} else {
$wnd.console.error("unexpected scroll target: "+e.target);
$wnd.console.error("unexpected scroll target: "+target);
}

esc.@com.vaadin.client.ui.grid.Escalator::onScroll()();

+ 4
- 1
client/src/com/vaadin/client/ui/grid/ScrollbarBundle.java View File

@@ -277,7 +277,10 @@ abstract class ScrollbarBundle {
* @return the new scroll position in pixels
*/
public final int getScrollPos() {
assert internalGetScrollPos() == scrollPos : "calculated scroll position did not match the actual scroll position";
assert internalGetScrollPos() == scrollPos : "calculated scroll position ("
+ scrollPos
+ ") did not match the DOM element scroll position ("
+ internalGetScrollPos() + ")";
return scrollPos;
}


Loading…
Cancel
Save