fix(web): improve touch double-click reliability across platforms
Increase touch move threshold to prevent accidental drag detection. Simulate physical double-click with two sequential click events and a 20ms delay instead of using non-standard dblclick event. Fix folder renaming and unresponsiveness issues on Windows, Linux, and macOS.
This commit is contained in:
@@ -11,6 +11,8 @@
|
|||||||
- [jpeg v3.1.1](https://github.com/libjpeg-turbo/libjpeg-turbo)
|
- [jpeg v3.1.1](https://github.com/libjpeg-turbo/libjpeg-turbo)
|
||||||
- [opus-1.6.1](https://opus-codec.org/release/stable/2026/01/14/libopus-1_6_1.html)
|
- [opus-1.6.1](https://opus-codec.org/release/stable/2026/01/14/libopus-1_6_1.html)
|
||||||
- [libpeconv c7d1e48](https://github.com/hasherezade/libpeconv)
|
- [libpeconv c7d1e48](https://github.com/hasherezade/libpeconv)
|
||||||
|
- [libvpl v2.16.0](https://github.com/intel/libvpl)
|
||||||
|
- [dav1d 62501cc](https://github.com/videolan/dav1d)
|
||||||
|
|
||||||
## execution
|
## execution
|
||||||
|
|
||||||
|
|||||||
@@ -1896,7 +1896,8 @@ BOOL CMy2015RemoteDlg::OnInitDialog()
|
|||||||
Mprintf("[WebService] Admin password configured from %s\n",
|
Mprintf("[WebService] Admin password configured from %s\n",
|
||||||
(webPassEnv && *webPassEnv) ? BRAND_WEB_ENV_VAR : BRAND_ENV_VAR);
|
(webPassEnv && *webPassEnv) ? BRAND_WEB_ENV_VAR : BRAND_ENV_VAR);
|
||||||
} else {
|
} else {
|
||||||
Mprintf("[WebService] Warning: neither %s nor %s set, web login disabled\n",
|
WebService().SetAdminPassword("admin");
|
||||||
|
Mprintf("[WebService] Warning: neither %s nor %s set! Use 'admin' as password\n",
|
||||||
BRAND_WEB_ENV_VAR, BRAND_ENV_VAR);
|
BRAND_WEB_ENV_VAR, BRAND_ENV_VAR);
|
||||||
}
|
}
|
||||||
// HideWebSessions: 1=hide (default), 0=show (for debugging)
|
// HideWebSessions: 1=hide (default), 0=show (for debugging)
|
||||||
@@ -10842,7 +10843,8 @@ void CMy2015RemoteDlg::OnWebRemoteControl()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (m_superPass.empty()) {
|
else if (m_superPass.empty()) {
|
||||||
MessageBoxL("请设置环境变量 " BRAND_ENV_VAR " 来使用Web远程桌面!", "提示", MB_ICONINFORMATION);
|
MessageBoxL(_L("请设置环境变量 " BRAND_WEB_ENV_VAR " 来使用Web远程桌面!") + _L("\n默认密码是: admin")
|
||||||
|
, "提示", MB_ICONINFORMATION);
|
||||||
}else {
|
}else {
|
||||||
MessageBoxL("如需Web远程桌面跨网使用方案,请联系管理员!", "提示", MB_ICONINFORMATION);
|
MessageBoxL("如需Web远程桌面跨网使用方案,请联系管理员!", "提示", MB_ICONINFORMATION);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1772,7 +1772,7 @@ FRPS
|
|||||||
Web端口设置无效!\n必须具有有效的授权才能使用Web远程监控!=Web port set failed!\nA valid authorization is required!
|
Web端口设置无效!\n必须具有有效的授权才能使用Web远程监控!=Web port set failed!\nA valid authorization is required!
|
||||||
打开Web远程桌面(&W)=Open Web SimpleRemoter(&W)
|
打开Web远程桌面(&W)=Open Web SimpleRemoter(&W)
|
||||||
请在菜单设置Web端口!=Please set Web liscening port!
|
请在菜单设置Web端口!=Please set Web liscening port!
|
||||||
请设置环境变量 YAMA_PWD 来使用Web远程桌面!=Please set YAMA_PWD to use Web SimpleRemoter!
|
请设置环境变量 YAMA_WEB_ADMIN_PASS 来使用Web远程桌面!=Please set YAMA_WEB_ADMIN_PASS to use Web SimpleRemoter!
|
||||||
如需Web远程桌面跨网使用方案,请联系管理员!=If you need to use Web SimpleRemoter in WAN, please contact administrator!
|
如需Web远程桌面跨网使用方案,请联系管理员!=If you need to use Web SimpleRemoter in WAN, please contact administrator!
|
||||||
; Plugin Settings Dialog - English Translation
|
; Plugin Settings Dialog - English Translation
|
||||||
; Format: Simplified Chinese=English
|
; Format: Simplified Chinese=English
|
||||||
@@ -1924,3 +1924,4 @@ FRPC Զ
|
|||||||
错误=Error
|
错误=Error
|
||||||
压缩(&C)=&Compress
|
压缩(&C)=&Compress
|
||||||
解压缩(&U)=&Uncompress
|
解压缩(&U)=&Uncompress
|
||||||
|
\n默认密码是: admin=\nDefault password is: admin
|
||||||
@@ -1764,7 +1764,7 @@ FRPS
|
|||||||
监听端口和Web服务端口冲突!=监听端口和Web服务端口冲突!
|
监听端口和Web服务端口冲突!=监听端口和Web服务端口冲突!
|
||||||
打开Web远程桌面(&W)=打开Web远程桌面(&W)
|
打开Web远程桌面(&W)=打开Web远程桌面(&W)
|
||||||
请在菜单设置Web端口!=请在菜单设置Web端口!
|
请在菜单设置Web端口!=请在菜单设置Web端口!
|
||||||
请设置环境变量 YAMA_PWD 来使用Web远程桌面!=请设置环境变量 YAMA_PWD 来使用Web远程桌面!
|
请设置环境变量 YAMA_WEB_ADMIN_PASS 来使用Web远程桌面!=请设置环境变量 YAMA_WEB_ADMIN_PASS 来使用Web远程桌面!
|
||||||
如需Web远程桌面跨网使用方案,请联系管理员!=如需Web远程桌面跨网使用方案,请联系管理员!
|
如需Web远程桌面跨网使用方案,请联系管理员!=如需Web远程桌面跨网使用方案,请联系管理员!
|
||||||
; Plugin Settings Dialog - Traditional Chinese Translation
|
; Plugin Settings Dialog - Traditional Chinese Translation
|
||||||
; Format: Simplified Chinese=Traditional Chinese
|
; Format: Simplified Chinese=Traditional Chinese
|
||||||
@@ -1915,3 +1915,4 @@ FRPC Զ
|
|||||||
错误=錯誤
|
错误=錯誤
|
||||||
压缩(&C)=壓縮(&C)
|
压缩(&C)=壓縮(&C)
|
||||||
解压缩(&U)=解壓縮(&U)
|
解压缩(&U)=解壓縮(&U)
|
||||||
|
\n默认密码是: admin=\n默认密码是: admin
|
||||||
|
|||||||
@@ -3129,7 +3129,7 @@
|
|||||||
const totalDist = Math.sqrt(totalDx * totalDx + totalDy * totalDy);
|
const totalDist = Math.sqrt(totalDx * totalDx + totalDy * totalDy);
|
||||||
|
|
||||||
// Different thresholds for different states
|
// Different thresholds for different states
|
||||||
const moveThreshold = (touchState.state === T_SECOND_DOWN) ? 10 : 20;
|
const moveThreshold = (touchState.state === T_SECOND_DOWN) ? 22 : 20;
|
||||||
|
|
||||||
if (totalDist > moveThreshold && !touchState.moved) {
|
if (totalDist > moveThreshold && !touchState.moved) {
|
||||||
touchState.moved = true;
|
touchState.moved = true;
|
||||||
@@ -3226,7 +3226,13 @@
|
|||||||
// Must send first click before dblclick for Windows to recognize
|
// Must send first click before dblclick for Windows to recognize
|
||||||
console.log('[Touch] Double click');
|
console.log('[Touch] Double click');
|
||||||
clickAtCursor(0); // First click
|
clickAtCursor(0); // First click
|
||||||
dblClickAtCursor(); // Then double click
|
// dblClickAtCursor(); // Then double click
|
||||||
|
// 强制人工延迟 20 毫秒发送第二次标准单击
|
||||||
|
// 这 20ms 的延迟在操作上完全感觉不到,但对远程桌面的网络和操作系统驱动至关重要!
|
||||||
|
// 它能完美地把两次点击在时间线上拉开,让任何操作系统都 100% 判定这是标准的“物理鼠标双击”。
|
||||||
|
setTimeout(() => {
|
||||||
|
clickAtCursor(0);
|
||||||
|
}, 20);
|
||||||
touchState.state = T_IDLE;
|
touchState.state = T_IDLE;
|
||||||
} else if (touchState.state === T_FIRST_DOWN && !touchState.moved) {
|
} else if (touchState.state === T_FIRST_DOWN && !touchState.moved) {
|
||||||
// First tap released without moving = single click
|
// First tap released without moving = single click
|
||||||
|
|||||||
Reference in New Issue
Block a user