Internal
Public Access
Add VNC-only scale-to-fit vs actual-size display toggle
VNC has no equivalent of RDP's MS-RDPEDISP to request a different resolution from the guest, so a high-resolution remote desktop previously always got shrunk to fit the window, making text illegible. Adds a per-tab "Display Mode" choice (tab-bar right-click) between the existing scale-to-fit behavior and a new actual-size mode that renders the framebuffer at its native pixel size inside a QScrollArea. Reuses VncDisplayWidget's existing scale-to-fit render math unchanged -- it degenerates to an exact 1:1 mapping once the widget is fixed to the remote's own size. Persisted like the terminal theme preference. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+13
-3
@@ -133,6 +133,15 @@ Delivered:
|
||||
- Verified live against a real, independently implemented VNC server
|
||||
(TightVNC on Windows): connect with VNC Authentication, correct
|
||||
framebuffer dimensions and pixel data, clean disconnect, reconnect
|
||||
- Per-tab VNC-only display mode toggle (tab-bar right-click ->
|
||||
`Display Mode`): `Scale to Fit` (default, matches RDP's behavior) or
|
||||
`Actual Size (Scrollbars)` -- renders the remote framebuffer at its
|
||||
native pixel size inside a `QScrollArea` so text isn't shrunk, at the
|
||||
cost of needing to scroll to see the whole screen. Reuses
|
||||
`VncDisplayWidget::renderRect()`'s existing scale-to-fit math unchanged:
|
||||
it degenerates to an exact 1:1 mapping once the widget's own bounds are
|
||||
fixed to the remote's size, so no separate rendering path was needed.
|
||||
Persisted across sessions like the terminal theme preference.
|
||||
|
||||
Known gaps (explicit scope decisions, not oversights -- see issue #3 for
|
||||
follow-up tracking):
|
||||
@@ -141,9 +150,10 @@ follow-up tracking):
|
||||
server -- only standard VNC Authentication (type 2) and no-auth (type 1)
|
||||
- Raw + CopyRect encodings only -- no Hextile/ZRLE/Tight compression, so
|
||||
bandwidth usage is higher over slow links than a full VNC client
|
||||
- No dynamic resize (connects at the server's native resolution, scaled to
|
||||
fit locally -- the same way `RdpDisplayWidget` already renders
|
||||
regardless of server resolution, so not a UX regression vs. RDP)
|
||||
- No dynamic resize (connects at the server's native resolution; the
|
||||
`Scale to Fit`/`Actual Size` toggle changes how that fixed resolution is
|
||||
displayed locally, not what resolution is requested from the guest --
|
||||
VNC has no equivalent of RDP's MS-RDPEDISP for that)
|
||||
- No remote cursor shape sync (local default cursor only)
|
||||
- No clipboard sync
|
||||
|
||||
|
||||
Reference in New Issue
Block a user