mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-02-01 18:41:54 +08:00
squash relative events
This commit is contained in:
@@ -24,7 +24,6 @@ import os
|
|||||||
import stat
|
import stat
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
from typing import Tuple
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Set
|
from typing import Set
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
@@ -159,10 +158,22 @@ class HidApi:
|
|||||||
(valid_hid_mouse_delta(delta["x"]), valid_hid_mouse_delta(delta["y"]))
|
(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])
|
for delta in (raw_delta if isinstance(raw_delta, list) else [raw_delta])
|
||||||
]
|
]
|
||||||
|
squash = valid_bool(event.get("squash", False))
|
||||||
except Exception:
|
except Exception:
|
||||||
return
|
return
|
||||||
for delta_xy in deltas:
|
if squash:
|
||||||
handler(*delta_xy)
|
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});
|
__sendEvent("mouse_move", {"to": to});
|
||||||
__sent_pos = pos;
|
__sent_pos = pos;
|
||||||
}
|
}
|
||||||
} else if (__relative_deltas) {
|
} else if (__relative_deltas.length) {
|
||||||
tools.debug("Mouse: relative:", __relative_deltas);
|
tools.debug("Mouse: relative:", __relative_deltas);
|
||||||
__sendEvent("mouse_relative", {"delta": __relative_deltas});
|
__sendEvent("mouse_relative", {"delta": __relative_deltas, "squash": true});
|
||||||
__relative_deltas = [];
|
__relative_deltas = [];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user