mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
squash relative events
This commit is contained in:
parent
dc3259c169
commit
ae6d8258af
@ -24,7 +24,6 @@ import os
|
||||
import stat
|
||||
import functools
|
||||
|
||||
from typing import Tuple
|
||||
from typing import Dict
|
||||
from typing import Set
|
||||
from typing import Callable
|
||||
@ -159,10 +158,22 @@ class HidApi:
|
||||
(valid_hid_mouse_delta(delta["x"]), valid_hid_mouse_delta(delta["y"]))
|
||||
for delta in (raw_delta if isinstance(raw_delta, list) else [raw_delta])
|
||||
]
|
||||
squash = valid_bool(event.get("squash", False))
|
||||
except Exception:
|
||||
return
|
||||
for delta_xy in deltas:
|
||||
handler(*delta_xy)
|
||||
if squash:
|
||||
prev = (0, 0)
|
||||
for cur in deltas:
|
||||
if abs(prev[0] + cur[0]) > 127 or abs(prev[1] + cur[1]) > 127:
|
||||
handler(*prev)
|
||||
prev = cur
|
||||
else:
|
||||
prev = (prev[0] + cur[0], prev[1] + cur[1])
|
||||
if prev[0] or prev[1]:
|
||||
handler(*prev)
|
||||
else:
|
||||
for xy in deltas:
|
||||
handler(*xy)
|
||||
|
||||
# =====
|
||||
|
||||
|
||||
@ -201,9 +201,9 @@ export function Mouse(record_callback) {
|
||||
__sendEvent("mouse_move", {"to": to});
|
||||
__sent_pos = pos;
|
||||
}
|
||||
} else if (__relative_deltas) {
|
||||
} else if (__relative_deltas.length) {
|
||||
tools.debug("Mouse: relative:", __relative_deltas);
|
||||
__sendEvent("mouse_relative", {"delta": __relative_deltas});
|
||||
__sendEvent("mouse_relative", {"delta": __relative_deltas, "squash": true});
|
||||
__relative_deltas = [];
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user