refactoring, reverted mouse scroll mode

This commit is contained in:
Maxim Devaev 2023-04-25 02:47:56 +03:00
parent 987684bc82
commit cbf0a8b8f2
4 changed files with 29 additions and 30 deletions

View File

@ -276,13 +276,6 @@
</td> </td>
<td class="value-number" id="hid-mouse-sens-value"></td> <td class="value-number" id="hid-mouse-sens-value"></td>
</tr> </tr>
<tr>
<td>Mouse Scroll Rate:</td>
<td class="value-slider">
<input class="slider" type="range" id="hid-mouse-scroll-slider">
</td>
<td class="value-number" id="hid-mouse-scroll-value"></td>
</tr>
<tr class="feature-disabled" id="hid-mouse-squash"> <tr class="feature-disabled" id="hid-mouse-squash">
<td>Squash relative moves:</td> <td>Squash relative moves:</td>
<td align="right"> <td align="right">
@ -301,6 +294,13 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<td>Scroll rate:</td>
<td class="value-slider">
<input class="slider" type="range" id="hid-mouse-scroll-slider">
</td>
<td class="value-number" id="hid-mouse-scroll-value"></td>
</tr>
</table> </table>
</div> </div>
</details> </details>

View File

@ -80,14 +80,14 @@ li(id="system-dropdown" class="right")
td Relative sensitivity: td Relative sensitivity:
td(class="value-slider") #[input(disabled type="range" id="hid-mouse-sens-slider" class="slider")] td(class="value-slider") #[input(disabled type="range" id="hid-mouse-sens-slider" class="slider")]
td(id="hid-mouse-sens-value" class="value-number") td(id="hid-mouse-sens-value" class="value-number")
tr
td Mouse Scroll Rate:
td(class="value-slider") #[input(type="range" id="hid-mouse-scroll-slider" class="slider")]
td(id="hid-mouse-scroll-value" class="value-number")
tr(id="hid-mouse-squash" class="feature-disabled") tr(id="hid-mouse-squash" class="feature-disabled")
+menu_switch_notable("hid-mouse-squash-switch", "Squash relative moves", true, true) +menu_switch_notable("hid-mouse-squash-switch", "Squash relative moves", true, true)
tr tr
+menu_switch_notable("hid-mouse-reverse-scrolling-switch", "Reverse scrolling", true, false) +menu_switch_notable("hid-mouse-reverse-scrolling-switch", "Reverse scrolling", true, false)
tr
td Scroll rate:
td(class="value-slider") #[input(type="range" id="hid-mouse-scroll-slider" class="slider")]
td(id="hid-mouse-scroll-value" class="value-number")
table(class="kv") table(class="kv")
tr(id="hid-connect" class="feature-disabled") tr(id="hid-connect" class="feature-disabled")
+menu_switch_notable("hid-connect-switch", "Connect HID to Server", true, true) +menu_switch_notable("hid-connect-switch", "Connect HID to Server", true, true)

View File

@ -131,6 +131,7 @@ ul#navbar li div.menu details summary {
ul#navbar li div.menu details div.spoiler { ul#navbar li div.menu details div.spoiler {
margin-left: 20px !important; margin-left: 20px !important;
border-left: var(--border-default-thin); border-left: var(--border-default-thin);
border-bottom: var(--border-default-thin);
} }
ul#navbar li div.menu details summary::marker { ul#navbar li div.menu details summary::marker {
color: var(--cs-marker-fg); color: var(--cs-marker-fg);

View File

@ -44,8 +44,8 @@ export function Mouse(__getGeometry, __recordWsEvent) {
var __relative_deltas = []; var __relative_deltas = [];
var __relative_touch_pos = null; var __relative_touch_pos = null;
var __relative_sens = 1.0; var __relative_sens = 1.0;
var __relative_scroll_rate = 5; var __scroll_rate = 5;
var __wheel_delta = {"x": 0, "y": 0}; var __scroll_delta = {"x": 0, "y": 0};
var __stream_hovered = false; var __stream_hovered = false;
@ -62,7 +62,7 @@ export function Mouse(__getGeometry, __recordWsEvent) {
$("stream-box").onmouseup = (event) => __streamButtonHandler(event, false); $("stream-box").onmouseup = (event) => __streamButtonHandler(event, false);
$("stream-box").oncontextmenu = (event) => event.preventDefault(); $("stream-box").oncontextmenu = (event) => event.preventDefault();
$("stream-box").onmousemove = __streamMoveHandler; $("stream-box").onmousemove = __streamMoveHandler;
$("stream-box").onwheel = __streamWheelHandler; $("stream-box").onwheel = __streamScrollHandler;
$("stream-box").ontouchstart = (event) => __streamTouchStartHandler(event); $("stream-box").ontouchstart = (event) => __streamTouchStartHandler(event);
$("stream-box").ontouchmove = (event) => __streamTouchMoveHandler(event); $("stream-box").ontouchmove = (event) => __streamTouchMoveHandler(event);
$("stream-box").ontouchend = (event) => __streamTouchEndHandler(event); $("stream-box").ontouchend = (event) => __streamTouchEndHandler(event);
@ -118,7 +118,7 @@ export function Mouse(__getGeometry, __recordWsEvent) {
var __updateScrollRate = function(value) { var __updateScrollRate = function(value) {
$("hid-mouse-scroll-value").innerHTML = value + " #"; $("hid-mouse-scroll-value").innerHTML = value + " #";
tools.storage.set("hid.mouse.scroll_rate", value); tools.storage.set("hid.mouse.scroll_rate", value);
__relative_scroll_rate = value; __scroll_rate = value;
}; };
var __updateRelativeSens = function(value) { var __updateRelativeSens = function(value) {
@ -252,21 +252,19 @@ export function Mouse(__getGeometry, __recordWsEvent) {
} }
}; };
var __streamWheelHandler = function(event) { var __streamScrollHandler = function(event) {
// https://learn.javascript.ru/mousewheel // https://learn.javascript.ru/mousewheel
// https://stackoverflow.com/a/24595588 // https://stackoverflow.com/a/24595588
event.preventDefault(); event.preventDefault();
//set default rate of -5, but allow localStorage hid.mouse.scroll_rate value to be used. let rate = -__scroll_rate;
var rate = -(__relative_scroll_rate);
if (!__absolute && !__isRelativeCaptured()) { if (!__absolute && !__isRelativeCaptured()) {
return; return;
} }
let delta = {"x": 0, "y": 0}; let delta = {"x": 0, "y": 0};
//This is for firefox and chrome, but not on mac. Mac uses 5-lines-per-scroll. if (tools.browser.is_firefox && !tools.browser.is_mac) {
if ((tools.browser.is_firefox || tools.browser.is_chrome) && !tools.browser.is_mac) {
if (event.deltaX !== 0) { if (event.deltaX !== 0) {
delta.x = event.deltaX / Math.abs(event.deltaX) * (rate); delta.x = event.deltaX / Math.abs(event.deltaX) * (rate);
} }
@ -276,20 +274,20 @@ export function Mouse(__getGeometry, __recordWsEvent) {
} else { } else {
let factor = (tools.browser.is_mac ? 5 : 1); let factor = (tools.browser.is_mac ? 5 : 1);
__wheel_delta.x += event.deltaX * factor; // Horizontal scrolling __scroll_delta.x += event.deltaX * factor; // Horizontal scrolling
if (Math.abs(__wheel_delta.x) >= 100) { if (Math.abs(__scroll_delta.x) >= 100) {
delta.x = __wheel_delta.x / Math.abs(__wheel_delta.x) * (rate); delta.x = __scroll_delta.x / Math.abs(__scroll_delta.x) * (rate);
__wheel_delta.x = 0; __scroll_delta.x = 0;
} }
__wheel_delta.y += event.deltaY * factor; // Vertical scrolling __scroll_delta.y += event.deltaY * factor; // Vertical scrolling
if (Math.abs(__wheel_delta.y) >= 100) { if (Math.abs(__scroll_delta.y) >= 100) {
delta.y = __wheel_delta.y / Math.abs(__wheel_delta.y) * (rate); delta.y = __scroll_delta.y / Math.abs(__scroll_delta.y) * (rate);
__wheel_delta.y = 0; __scroll_delta.y = 0;
} }
} }
__sendWheel(delta); __sendScroll(delta);
}; };
var __sendOrPlanRelativeMove = function(delta) { var __sendOrPlanRelativeMove = function(delta) {
@ -307,7 +305,7 @@ export function Mouse(__getGeometry, __recordWsEvent) {
} }
}; };
var __sendWheel = function(delta) { var __sendScroll = function(delta) {
if (delta.x || delta.y) { if (delta.x || delta.y) {
if ($("hid-mouse-reverse-scrolling-switch").checked) { if ($("hid-mouse-reverse-scrolling-switch").checked) {
delta.x *= -1; delta.x *= -1;