Haven 5.91.1:RDP 快捷栏回归移除了 Win 键开关

Haven issue #772 定位到 v5.91.1 工具栏切换提交:RDP/ SPICE/ GLKVM 会话的屏幕快捷栏仍有 Ctrl、Alt、Shift,但 Win 开关被新的 `KeyboardToolbar` 调用路径移除;硬件 Meta 键仍能到达 guest,预期是恢复左 Win 键的按住/释放切换。

作者原文

Symptom

The extended key bar on an RDP session (same screen for SPICE and GLKVM) no longer has a Win key. Ctrl, Alt, and Shift are still there. A hardware Meta key still reaches the guest; only the on-screen Win toggle is gone.

Commit

Introduced in e9a7a2602f (chore(release): bump version to 5.91.1, 2026-10-30), the commit that also documents the shared KeyboardToolbar in the v5.91.1 notes. Parent is b3b829f7ec. No pull request is attached to the commit.

Before that commit, RdpViewer called RdpKeyToolbar and passed:

winActive = winActive,
onToggleWin = {
    winActive = !winActive
    if (!winActive) onKeyUp(SC_WIN_L) else onKeyDown(SC_WIN_L)
},

RdpKeyToolbar drew RdpToggleButton("Win", …) at the start of the bar. The same commit replaced that call with sh.haven.core.toolbar.KeyboardToolbar and deleted the onToggleWin lambda. RdpKeyToolbar still contains the Win button, but nothing calls it.

KeyboardToolbar and ToolbarKey have Ctrl / Alt / Shift / AltGr and no Win entry, so the key cannot be added from the toolbar editor either. winActive and the SC_WIN_L key-up in releaseActiveModifiers are still in RdpScreen, and nothing sets winActive to true.

Expected

The desktop shortcut bar exposes a Win toggle again, holding and releasing left Win (SC_WIN_L, extended scancode 0x5B) the way Ctrl holds SC_CTRL_L.