Update RemoteDesktopModal.vue

This commit is contained in:
Baobhan Sith
2025-06-05 09:49:56 +08:00
parent c5155c74c8
commit 90aa26b04f
@@ -303,9 +303,30 @@ const setupInputListeners = () => {
}
};
// Listen for display focus to sync clipboard
// Listen for display focus to sync clipboard (Host -> RDP)
displayEl.addEventListener('focus', trySyncClipboardOnDisplayFocus);
// Listen for clipboard data from RDP (RDP -> Host)
// @ts-ignore
guacClient.value.onclipboard = async (stream, mimetype) => {
if (mimetype === 'text/plain') {
// @ts-ignore
const reader = new Guacamole.StringReader(stream);
let text = '';
reader.ontext = (chunk: string) => {
text += chunk;
};
reader.onend = async () => {
try {
await navigator.clipboard.writeText(text);
console.log('[RemoteDesktopModal] Received clipboard from RDP and wrote to host:', text.substring(0, 50) + (text.length > 50 ? '...' : ''));
} catch (err) {
console.warn('[RemoteDesktopModal] Could not write to host clipboard:', err);
}
};
}
};
} catch (inputError) {
console.error("Error setting up input listeners:", inputError); // 添加错误日志
statusMessage.value = t('remoteDesktopModal.errors.inputError');
@@ -339,6 +360,11 @@ const removeInputListeners = () => {
mouse.value.onmousemove = null;
mouse.value = null;
}
// 清理剪贴板监听器
if (guacClient.value) {
// @ts-ignore
guacClient.value.onclipboard = null;
}
};
const disableRdpKeyboard = () => {