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 <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2017-10-04 10:04:27 +02:00 committed by Fabian Grünbichler
parent 765bba6ca6
commit 4e02a286b1

View File

@ -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