Internal
Public Access
RDP session fixes: correct keyboard scancodes, clipboard sync, cursor shapes
Fix RDP keyboard input using FreeRDP's authoritative X11-keycode-to-scancode table instead of ad hoc bit math, which misread punctuation keys as unrelated letter keys (e.g. apostrophe as B) because X11 keycode numbering only coincidentally overlaps PC/AT scancodes. Add bidirectional clipboard sync (CF_UNICODETEXT) over the cliprdr channel, and RDP pointer/cursor shape sync so the local cursor reflects what the remote OS wants displayed (resize handles, text I-beam, etc.) instead of staying a static arrow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,6 +82,7 @@ signals:
|
||||
void requestMouseMoveEvent(int x, int y);
|
||||
void requestMouseButtonEvent(int x, int y, int button, bool pressed);
|
||||
void requestMouseWheelEvent(int x, int y, int deltaX, int deltaY);
|
||||
void requestSetClipboardText(const QString& text);
|
||||
|
||||
private slots:
|
||||
void onBackendStateChanged(SessionState state, const QString& message);
|
||||
@@ -89,6 +90,8 @@ private slots:
|
||||
void onBackendConnectionError(const QString& displayMessage, const QString& rawMessage);
|
||||
void onBackendOutputReceived(const QString& text);
|
||||
void onBackendHostKeyConfirmationRequested(const QString& prompt);
|
||||
void onBackendRemoteClipboardTextChanged(const QString& text);
|
||||
void onSystemClipboardChanged();
|
||||
|
||||
private:
|
||||
Profile m_profile;
|
||||
@@ -100,6 +103,8 @@ private:
|
||||
SessionConnectOptions m_lastConnectOptions;
|
||||
QString m_terminalThemeName;
|
||||
int m_terminalFontPointSize;
|
||||
QString m_lastSyncedClipboardText;
|
||||
bool m_clipboardSyncSupported;
|
||||
|
||||
KodoTerm* m_sshTerminal;
|
||||
RdpDisplayWidget* m_rdpDisplay;
|
||||
|
||||
Reference in New Issue
Block a user