Browse Source

Fix Grid scrolling on Firefox (#16865. #17352)

Change-Id: I58ac7c03be2a4d950ecfba609fddf862f2fd966f
tags/7.6.0.alpha2
patrik 9 years ago
parent
commit
f4069826fb
1 changed files with 22 additions and 1 deletions
  1. 22
    1
      client/src/com/vaadin/client/widgets/Escalator.java

+ 22
- 1
client/src/com/vaadin/client/widgets/Escalator.java View File

@@ -803,7 +803,24 @@ public class Escalator extends Widget implements RequiresResize,
return $entry(function(e) {
var deltaX = e.deltaX ? e.deltaX : -0.5*e.wheelDeltaX;
var deltaY = e.deltaY ? e.deltaY : -0.5*e.wheelDeltaY;

// Delta mode 0 is in pixels; we don't need to do anything...

// A delta mode of 1 means we're scrolling by lines instead of pixels
// We need to scale the number of lines by the default line height
if(e.deltaMode === 1) {
var brc = esc.@com.vaadin.client.widgets.Escalator::body;
deltaY *= brc.@com.vaadin.client.widgets.Escalator.AbstractRowContainer::getDefaultRowHeight()();
}

// Other delta modes aren't supported
if((e.deltaMode !== undefined) && (e.deltaMode >= 2 || e.deltaMode < 0)) {
var msg = "Unsupported wheel delta mode \"" + e.deltaMode + "\"";

// Print warning message
esc.@com.vaadin.client.widgets.Escalator::logWarning(*)(msg);
}

// IE8 has only delta y
if (isNaN(deltaY)) {
deltaY = -0.5*e.wheelDelta;
@@ -6700,4 +6717,8 @@ public class Escalator extends Widget implements RequiresResize,
private String getSubPartNameSpacer(Element subElement) {
return body.spacerContainer.getSubPartName(subElement);
}

private void logWarning(String message) {
getLogger().warning(message);
}
}

Loading…
Cancel
Save