Merge pull request #483 from gregersrygg/master

Improve analog mouse wheel zooming
This commit is contained in:
ahocevar
2012-05-30 14:03:51 -07:00
4 changed files with 26 additions and 6 deletions

View File

@@ -54,7 +54,7 @@ OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, {
* negative)
*/
cumulative: true,
/**
* Constructor: OpenLayers.Handler.MouseWheel
*
@@ -170,13 +170,21 @@ OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, {
if (!e) {
e = window.event;
}
if (e.wheelDelta) {
delta = e.wheelDelta/120;
delta = e.wheelDelta;
if (window.opera && window.opera.version() < 9.2) {
delta = -delta;
}
if (delta % 160 === 0) {
// opera have steps of 160 instead of 120
delta = delta * 0.75;
}
delta = delta / 120;
} else if (e.detail) {
delta = -e.detail / 3;
// detail in Firefox on OS X is 1/3 of Windows
// so force delta 1 / -1
delta = - (e.detail / Math.abs(e.detail));
}
this.delta = this.delta + delta;