From 2ccb1a98cad08bba6e2bb63f21b44377ec49ceb4 Mon Sep 17 00:00:00 2001 From: Gui Meira Date: Wed, 25 Jun 2014 19:17:59 -0300 Subject: [PATCH] Added the wheelSensitivity initialisation option --- documentation/md/core/init.md | 3 +++ src/core.js | 4 +++- src/extensions/renderer.canvas.define-and-init-etc.js | 1 + src/extensions/renderer.canvas.load-and-listeners.js | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/documentation/md/core/init.md b/documentation/md/core/init.md index 4268e900b..eadc480d6 100644 --- a/documentation/md/core/init.md +++ b/documentation/md/core/init.md @@ -114,6 +114,7 @@ cytoscape({ hideEdgesOnViewport: false, hideLabelsOnViewport: false, textureOnViewport: false, + wheelSensitivity: 1, renderer: { /* ... */ }, style: undefined /* ... */, styleEnabled: isHeadless ? false : true, @@ -148,6 +149,8 @@ cytoscape({ **`textureOnViewport`** : When set to `true`, the renderer uses a texture (if supported) during panning and zooming instead of drawing the elements, making large graphs more responsive. +**`wheelSensitivity`** : Changes the scroll wheel sensitivity when zooming. A value between 0 and 1 reduces the sensitivity (zooms slower), a value greater than 1 does the oposite. + **`renderer`** : A plain object containing options for the renderer to be used. The `options.renderer.name` field specifies which renderer is used. You need not specify anything for the `renderer` option, unless you want to specify one of the rendering options below: * **`renderer.name`** : The name of the renderer to use. By default, the `'canvas'` renderer is used. If you [build and register](#extensions) your own renderer, then you can specify its name here. diff --git a/src/core.js b/src/core.js index 53493edee..784d6f255 100644 --- a/src/core.js +++ b/src/core.js @@ -118,7 +118,8 @@ cy.initRenderer( $$.util.extend({ hideEdgesOnViewport: options.hideEdgesOnViewport, hideLabelsOnViewport: options.hideLabelsOnViewport, - textureOnViewport: options.textureOnViewport + textureOnViewport: options.textureOnViewport, + wheelSensitivity: $$.is.number(options.wheelSensitivity) && options.wheelSensitivity > 0 ? options.wheelSensitivity : 1 }, options.renderer) ); // trigger the passed function for the `initrender` event @@ -292,6 +293,7 @@ json.hideEdgesOnViewport = cy._private.options.hideEdgesOnViewport; json.hideLabelsOnViewport = cy._private.options.hideLabelsOnViewport; json.textureOnViewport = cy._private.options.textureOnViewport; + json.wheelSensitivity = cy._private.options.wheelSensitivity; return json; } diff --git a/src/extensions/renderer.canvas.define-and-init-etc.js b/src/extensions/renderer.canvas.define-and-init-etc.js index 3c6476260..60aa61c5d 100644 --- a/src/extensions/renderer.canvas.define-and-init-etc.js +++ b/src/extensions/renderer.canvas.define-and-init-etc.js @@ -97,6 +97,7 @@ this.hideEdgesOnViewport = options.hideEdgesOnViewport; this.hideLabelsOnViewport = options.hideLabelsOnViewport; this.textureOnViewport = options.textureOnViewport; + this.wheelSensitivity = options.wheelSensitivity; this.load(); } diff --git a/src/extensions/renderer.canvas.load-and-listeners.js b/src/extensions/renderer.canvas.load-and-listeners.js index 240417a3f..4e05ad007 100644 --- a/src/extensions/renderer.canvas.load-and-listeners.js +++ b/src/extensions/renderer.canvas.load-and-listeners.js @@ -866,6 +866,7 @@ }, 150); var diff = e.wheelDeltaY / 1000 || e.wheelDelta / 1000 || e.detail / -32 || -e.deltaY / 500; + diff = diff * r.wheelSensitivity; cy.zoom({ level: cy.zoom() * Math.pow(10, diff),