From b83ba7692ae96a4d1e479f48d5194c697295719a Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Sat, 7 Nov 2020 05:55:34 +0300 Subject: optional relative squashing --- web/kvm/index.html | 32 +++++++++++++++++++++++--------- web/kvm/navbar-system.pug | 13 ++++--------- web/kvm/navbar.pug | 11 +++++++++++ web/share/js/kvm/mouse.js | 12 +++++++++++- 4 files changed, 49 insertions(+), 19 deletions(-) diff --git a/web/kvm/index.html b/web/kvm/index.html index e494a920..ee2b7fe6 100644 --- a/web/kvm/index.html +++ b/web/kvm/index.html @@ -143,16 +143,30 @@
-
- - - -
Auto-resize stream: -
- - +
+ + + +
Auto-resize stream: +
+ + +
+
+
+
+
+
+ + + +
Squash mouse moves: +
+ + +
+
-

diff --git a/web/kvm/navbar-system.pug b/web/kvm/navbar-system.pug index d6e76156..efcc4a6d 100644 --- a/web/kvm/navbar-system.pug +++ b/web/kvm/navbar-system.pug @@ -35,15 +35,10 @@ li(class="right") div(class="stream-param-box") input(type="range" id="stream-size-slider" class="slider") hr - div(class="text") - table(class="one-line-switch") - td Auto-resize stream: - td(align="right") - div(class="switch-box") - input(checked type="checkbox" id="stream-auto-resize-checkbox") - label(for="stream-auto-resize-checkbox") - span(class="switch-inner") - span(class="switch") + +menu_switch("stream-auto-resize-checkbox", "Auto-resize stream") + div(id="mouse-squash" class="feature-disabled") + hr + +menu_switch("mouse-squash-checkbox", "Squash mouse moves") hr div(class="buttons") button(disabled data-force-hide-menu id="stream-reset-button") • Reset stream diff --git a/web/kvm/navbar.pug b/web/kvm/navbar.pug index 422cf236..4c83fc73 100644 --- a/web/kvm/navbar.pug +++ b/web/kvm/navbar.pug @@ -13,6 +13,17 @@ mixin menu_message(icon, short, classes="") sup(style="line-height:1") block +mixin menu_switch(id, title) + div(class="text") + table(class="one-line-switch") + td #{title}: + td(align="right") + div(class="switch-box") + input(checked type="checkbox" id=id) + label(for=id) + span(class="switch-inner") + span(class="switch") + ul(id="navbar") li(class="left") a(id="logo" href="/") ←   diff --git a/web/share/js/kvm/mouse.js b/web/share/js/kvm/mouse.js index 8674adf5..961750c2 100644 --- a/web/share/js/kvm/mouse.js +++ b/web/share/js/kvm/mouse.js @@ -88,6 +88,7 @@ export function Mouse(record_callback) { if (__absolute && !state.absolute) { __relative_deltas = []; } + tools.featureSetEnabled($("mouse-squash"), !state.absolute); __absolute = state.absolute; __updateOnlineLeds(); }; @@ -136,6 +137,10 @@ export function Mouse(record_callback) { return (document.pointerLockElement === $("stream-box")); }; + var __isRelativeSquashed = function() { + return $("mouse-squash-checkbox").checked; + }; + var __relativeCapturedHandler = function() { tools.info("Relative mouse", (__isRelativeCaptured() ? "captured" : "released"), "by pointer lock"); __updateOnlineLeds(); @@ -183,7 +188,12 @@ export function Mouse(record_callback) { x: Math.min(Math.max(-127, event.movementX), 127), y: Math.min(Math.max(-127, event.movementY), 127), }; - __relative_deltas.push(delta); + if (__isRelativeSquashed()) { + __relative_deltas.push(delta); + } else { + tools.debug("Mouse: relative:", delta); + __sendEvent("mouse_relative", {"delta": delta}); + } } }; -- cgit v1.2.3