]> git.proxmox.com Git - pve-manager.git/commitdiff
fix #1516: fix mouse-scrolling of overflowhandlers in firefox
authorDominik Csapak <d.csapak@proxmox.com>
Wed, 4 Oct 2017 08:04:27 +0000 (10:04 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Fri, 6 Oct 2017 05:54:55 +0000 (07:54 +0200)
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>
www/manager6/Toolkit.js

index ec25e7cdb8969333ea9457de991672bb3004fea0..56b066864b7593babf3ac07fc981cf3c4cba8a53 100644 (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