Fix: Web remote desktop double-click not working for macOS clients
This commit is contained in:
@@ -2696,7 +2696,12 @@ inline std::string GetWebPageHTML() {
|
||||
sendMouse('up', pos.x, pos.y, e.button);
|
||||
});
|
||||
|
||||
// Note: dblclick is handled by mousedown-mouseup sequence, no separate handler needed
|
||||
// dblclick handler - server will forward only to macOS clients
|
||||
canvas.addEventListener('dblclick', function(e) {
|
||||
e.preventDefault();
|
||||
const pos = getMousePos(e);
|
||||
sendMouse('dblclick', pos.x, pos.y, e.button);
|
||||
});
|
||||
|
||||
canvas.addEventListener('mousemove', function(e) {
|
||||
const now = Date.now();
|
||||
|
||||
@@ -770,6 +770,15 @@ void CWebService::HandleMouse(void* ws_ptr, const std::string& msg) {
|
||||
short wheelDelta = (short)(delta > 0 ? -120 : (delta < 0 ? 120 : 0));
|
||||
msg64.wParam = MAKEWPARAM(0, wheelDelta);
|
||||
} else if (type == "dblclick") {
|
||||
// dblclick is only needed for macOS clients
|
||||
// Windows detects double-click from rapid mousedown/mouseup sequence
|
||||
context* mainCtx = m_pParentDlg->FindHost(device_id);
|
||||
if (!mainCtx) return;
|
||||
CString clientType = mainCtx->GetAdditionalData(RES_CLIENT_TYPE);
|
||||
// Check for both "MAC" (new) and "macOS" (legacy) for compatibility
|
||||
if (clientType != GetClientType(CLIENT_TYPE_MACOS) && clientType != "macOS") {
|
||||
return; // Skip dblclick for non-macOS clients
|
||||
}
|
||||
if (button == 0) {
|
||||
msg64.message = WM_LBUTTONDBLCLK;
|
||||
msg64.wParam = MK_LBUTTON;
|
||||
|
||||
Reference in New Issue
Block a user