From 4e02a286b103c6a926f27ad49f29d0924a8518bc Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 4 Oct 2017 10:04:27 +0200 Subject: [PATCH] fix #1516: fix mouse-scrolling of overflowhandlers in firefox this is a workaround for scrolling in toolbars, etc. in firefox with the mouse while the result is not very "pretty", it maintains the old behaviour for all other browsers and makes it work in firefox we can drop this when we update to a new extjs release Signed-off-by: Dominik Csapak --- www/manager6/Toolkit.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/www/manager6/Toolkit.js b/www/manager6/Toolkit.js index ec25e7cd..56b06686 100644 --- a/www/manager6/Toolkit.js +++ b/www/manager6/Toolkit.js @@ -286,6 +286,33 @@ Ext.define('PVE.Datepicker', { hideMode: 'visibility' }); +// this should be fixed with ExtJS 6.0.2 +// this makes mousescrolling work in firefox in the overflowhandler +// and does not change behaviour in any other browser +Ext.define(null, { + override: 'Ext.layout.container.boxOverflow.Scroller', + + createWheelListener: function() { + var me = this; + if (Ext.isFirefox) { + me.wheelListener = me.layout.innerCt.on('wheel', me.onMouseWheelFirefox, me, {destroyable: true}); + } else { + me.wheelListener = me.layout.innerCt.on('mousewheel', me.onMouseWheel, me, {destroyable: true}); + } + }, + + // special wheel handler for firefox + // nearly the same as the default onMouseWheel handler, + // but using deltaY instead of wheelDeltaY + // and no normalizing, because it is already normalized + onMouseWheelFirefox: function(e) { + e.stopEvent(); + var delta = e.browserEvent.deltaY || 0; + this.scrollBy(delta * this.wheelIncrement, false); + } + +}); + // force alert boxes to be rendered with an Error Icon // since Ext.Msg is an object and not a prototype, we need to override it // after the framework has been initiated