diff --git a/package.json b/package.json index 67604d2..4568c8f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "scrcpy-mask", "private": true, - "version": "0.1.2", + "version": "0.1.3", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d17a8a8..52521ee 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "scrcpy-mask" -version = "0.1.2" +version = "0.1.3" description = "A Tauri App" authors = ["AkiChase"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 1c4d762..4fcda3a 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "productName": "scrcpy-mask", - "version": "0.1.2", + "version": "0.1.3", "identifier": "com.akichase.mask", "build": { "beforeDevCommand": "pnpm dev", diff --git a/src/components/keyboard/KeyBoard.vue b/src/components/keyboard/KeyBoard.vue index 33c16e4..9ac8b08 100644 --- a/src/components/keyboard/KeyBoard.vue +++ b/src/components/keyboard/KeyBoard.vue @@ -122,8 +122,10 @@ function isKeyUnique(curKey: string): boolean { function setCurButtonKey(curKey: string) { if ( keyboardStore.activeButtonIndex === -1 || - keyboardStore.activeButtonIndex >= store.editKeyMappingList.length|| - keyboardStore.showButtonSettingFlag|| + keyboardStore.activeButtonIndex >= store.editKeyMappingList.length || + keyboardStore.showButtonSettingFlag || + keyboardStore.activeButtonIndex >= store.editKeyMappingList.length || + keyboardStore.showButtonSettingFlag || keyboardStore.showButtonAddFlag ) return; @@ -233,26 +235,31 @@ onActivated(() => { }); onBeforeRouteLeave(() => { - document.removeEventListener("keyup", handleKeyUp); - document.removeEventListener("wheel", handleMouseWheel); - if (keyboardStore.edited) { - dialog.warning({ - title: "Warning", - content: "当前方案尚未保存,是否保存?", - positiveText: "保存", - negativeText: "取消", - onPositiveClick: () => { - if (store.applyEditKeyMappingList()) { - keyboardStore.edited = false; - } else { - message.error("存在重复按键,无法保存"); - } - }, - onNegativeClick: () => { - resetKeyMappingConfig(); - }, - }); - } + return new Promise((resolve, _) => { + document.removeEventListener("keyup", handleKeyUp); + document.removeEventListener("wheel", handleMouseWheel); + if (keyboardStore.edited) { + dialog.warning({ + title: "Warning", + content: "当前方案尚未保存,是否保存?", + positiveText: "保存", + negativeText: "取消", + onPositiveClick: () => { + if (store.applyEditKeyMappingList()) { + keyboardStore.edited = false; + resolve(true); + } else { + message.error("存在重复按键,无法保存"); + resolve(false); + } + }, + onNegativeClick: () => { + resetKeyMappingConfig(); + resolve(true); + }, + }); + } else resolve(true); + }); }); diff --git a/src/hotkey.ts b/src/hotkey.ts index b115b3c..6f119f1 100644 --- a/src/hotkey.ts +++ b/src/hotkey.ts @@ -51,8 +51,8 @@ function clientPosToSkillOffset( // The center of the game display is higher than the center of the mask clientPos.y -= maskSizeH * 0.066; -// w450 : h315 = 100 : 70, so the true offsetX is 0.7 * cOffsetX - const cOffsetX = (clientPos.x - 70 - centerX)*0.7; + // w450 : h315 = 100 : 70, so the true offsetX is 0.7 * cOffsetX + const cOffsetX = (clientPos.x - 70 - centerX) * 0.7; const cOffsetY = clientPos.y - 30 - centerY; const offsetD = Math.sqrt(cOffsetX ** 2 + cOffsetY ** 2); if (offsetD == 0) { @@ -731,11 +731,27 @@ function handleMouseWheel(event: WheelEvent) { if (event.deltaY > 0 && event.timeStamp - lastWheelDownTime > 50) { lastWheelDownTime = event.timeStamp; // WheelDown - downKeyCBMap.get("WheelDown")?.(); + if (downKeyMap.has("WheelDown")) { + if (!downKeyMap.get("WheelDown")) { + downKeyMap.set("WheelDown", true); + downKeyCBMap.get("WheelDown")?.(); + } else { + downKeyMap.set("WheelDown", false); + upKeyCBMap.get("WheelDown")?.(); + } + } } else if (event.deltaY < 0 && event.timeStamp - lastWheelUpTime > 50) { lastWheelUpTime = event.timeStamp; // WheelUp - downKeyCBMap.get("WheelUp")?.(); + if (downKeyMap.has("WheelUp")) { + if (!downKeyMap.get("WheelUp")) { + downKeyMap.set("WheelUp", true); + downKeyCBMap.get("WheelUp")?.(); + } else { + downKeyMap.set("WheelUp", false); + upKeyCBMap.get("WheelUp")?.(); + } + } } }