diff --git a/web/kvm/index.html b/web/kvm/index.html
index e76f06d7..a3335be4 100644
--- a/web/kvm/index.html
+++ b/web/kvm/index.html
@@ -286,13 +286,28 @@
- | Reverse scrolling: |
-
-
-
-
-
- |
+ Reverse scrolling: |
+
+
+ |
| Cumulative scrolling: |
diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug
index e1054bd5..77723f9a 100644
--- a/web/kvm/navbar-system.pug
+++ b/web/kvm/navbar-system.pug
@@ -83,7 +83,13 @@ li(id="system-dropdown" class="right")
tr(id="hid-mouse-squash" class="feature-disabled")
+menu_switch_notable("hid-mouse-squash-switch", "Squash relative moves", true, true)
tr
- +menu_switch_notable("hid-mouse-reverse-scrolling-switch", "Reverse scrolling", true, false)
+ td Reverse scrolling:
+ td
+ table
+ tr
+ +menu_switch_notable("hid-mouse-reverse-scrolling-switch", "Y", true, false)
+ td
+ +menu_switch_notable("hid-mouse-reverse-panning-switch", "X", true, false)
tr
+menu_switch_notable("hid-mouse-cumulative-scrolling-switch", "Cumulative scrolling", true, false)
tr
diff --git a/web/share/js/kvm/mouse.js b/web/share/js/kvm/mouse.js
index f2d6afde..40ea66ca 100644
--- a/web/share/js/kvm/mouse.js
+++ b/web/share/js/kvm/mouse.js
@@ -72,6 +72,7 @@ export function Mouse(__getGeometry, __recordWsEvent) {
tools.slider.setParams($("hid-mouse-rate-slider"), 10, 100, 10, tools.storage.get("hid.mouse.rate", 100), __updateRate); // set __timer
tools.storage.bindSimpleSwitch($("hid-mouse-reverse-scrolling-switch"), "hid.mouse.reverse_scrolling", false);
+ tools.storage.bindSimpleSwitch($("hid-mouse-reverse-panning-switch"), "hid.mouse.reverse_panning", false);
let cumulative_scrolling = !(tools.browser.is_firefox && !tools.browser.is_mac);
tools.storage.bindSimpleSwitch($("hid-mouse-cumulative-scrolling-switch"), "hid.mouse.cumulative_scrolling", cumulative_scrolling);
tools.slider.setParams($("hid-mouse-scroll-slider"), 1, 25, 1, tools.storage.get("hid.mouse.scroll_rate", 5), __updateScrollRate);
@@ -310,9 +311,11 @@ export function Mouse(__getGeometry, __recordWsEvent) {
var __sendScroll = function(delta) {
if (delta.x || delta.y) {
if ($("hid-mouse-reverse-scrolling-switch").checked) {
- delta.x *= -1;
delta.y *= -1;
}
+ if ($("hid-mouse-reverse-panning-switch").checked) {
+ delta.x *= -1;
+ }
tools.debug("Mouse: scrolled:", delta);
__sendEvent("mouse_wheel", {"delta": delta});
}