mirror of
https://github.com/AkiChase/scrcpy-mask
synced 2025-02-22 23:12:16 +08:00
fix(hotkey): mouse reset in full screen
This commit is contained in:
parent
f133182ed6
commit
ce3804e120
@ -91,8 +91,8 @@ fn start_scrcpy_server(
|
|||||||
let sender = front_msg_sender.clone();
|
let sender = front_msg_sender.clone();
|
||||||
// println!("收到front-command: {}", event.payload());
|
// println!("收到front-command: {}", event.payload());
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
if let Err(e) = sender.send(event.payload().into()).await {
|
if let Err(_) = sender.send(event.payload().into()).await {
|
||||||
println!("front-command转发失败: {}", e);
|
println!("front-command forwarding failure, please restart the program !");
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -801,12 +801,22 @@ function addSightShortcuts(
|
|||||||
addShortcut(sightKeyMapping.key, async () => {
|
addShortcut(sightKeyMapping.key, async () => {
|
||||||
if (mouseLock) {
|
if (mouseLock) {
|
||||||
// stop sight mode
|
// stop sight mode
|
||||||
|
|
||||||
|
// remove box element
|
||||||
|
const mouseRangeBoxElement = document.getElementById("mouseRangeBox");
|
||||||
|
if (mouseRangeBoxElement) {
|
||||||
|
mouseRangeBoxElement.removeEventListener(
|
||||||
|
"mouseleave",
|
||||||
|
moveLeaveHandler
|
||||||
|
);
|
||||||
|
mouseRangeBoxElement.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
mouseLock = false;
|
||||||
loopDownKeyCBMap.delete(sightKeyMapping.key);
|
loopDownKeyCBMap.delete(sightKeyMapping.key);
|
||||||
await touchRelateToSight(TouchAction.Up);
|
await touchRelateToSight(TouchAction.Up);
|
||||||
await appWindow.setCursorVisible(true);
|
await appWindow.setCursorVisible(true);
|
||||||
maskElement.removeEventListener("mouseleave", moveLeaveHandler);
|
|
||||||
maskElement.style.cursor = "pointer";
|
|
||||||
mouseLock = false;
|
|
||||||
if (msgReactive) {
|
if (msgReactive) {
|
||||||
msgReactive.destroy();
|
msgReactive.destroy();
|
||||||
msgReactive = null;
|
msgReactive = null;
|
||||||
@ -819,10 +829,14 @@ function addSightShortcuts(
|
|||||||
addClickShortcuts("M0", 0);
|
addClickShortcuts("M0", 0);
|
||||||
} else {
|
} else {
|
||||||
// start sight mode
|
// start sight mode
|
||||||
await appWindow.setCursorVisible(false);
|
|
||||||
maskElement.addEventListener("mouseleave", moveLeaveHandler);
|
// create box element
|
||||||
maskElement.style.cursor = "none";
|
const mouseRangeBoxElement = createMouseRangeBox();
|
||||||
|
mouseRangeBoxElement.addEventListener("mouseleave", moveLeaveHandler);
|
||||||
|
document.body.appendChild(mouseRangeBoxElement);
|
||||||
|
|
||||||
mouseLock = true;
|
mouseLock = true;
|
||||||
|
await appWindow.setCursorVisible(false);
|
||||||
msgReactive = message.info(
|
msgReactive = message.info(
|
||||||
t("pages.Mask.sightMode", [sightKeyMapping.key]),
|
t("pages.Mask.sightMode", [sightKeyMapping.key]),
|
||||||
{
|
{
|
||||||
@ -926,6 +940,19 @@ function addSightShortcuts(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createMouseRangeBox(): HTMLElement {
|
||||||
|
const box = document.createElement("div");
|
||||||
|
box.id = "mouseRangeBox";
|
||||||
|
box.style.position = "absolute";
|
||||||
|
box.style.top = "40px";
|
||||||
|
box.style.bottom = "40px";
|
||||||
|
box.style.left = "100px";
|
||||||
|
box.style.right = "100px";
|
||||||
|
box.style.zIndex = "9999";
|
||||||
|
box.style.backgroundColor = "transparent";
|
||||||
|
return box;
|
||||||
|
}
|
||||||
|
|
||||||
function handleKeydown(event: KeyboardEvent) {
|
function handleKeydown(event: KeyboardEvent) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
if (event.repeat) return;
|
if (event.repeat) return;
|
||||||
@ -948,7 +975,10 @@ function handleKeyup(event: KeyboardEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleMouseDown(event: MouseEvent) {
|
function handleMouseDown(event: MouseEvent) {
|
||||||
if (event.target !== maskElement) return;
|
const target = event.target;
|
||||||
|
if (!(target instanceof HTMLElement)) return;
|
||||||
|
if (target.id !== "maskElement" && target.id !== "mouseRangeBox") return;
|
||||||
|
|
||||||
mouseX = event.clientX;
|
mouseX = event.clientX;
|
||||||
mouseY = event.clientY;
|
mouseY = event.clientY;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
Loading…
Reference in New Issue
Block a user