29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
# Ubuntu 鼠标按键状态修复(2026-11-06)
|
||
|
||
本轮只修复盒子端 Moonlight 的输入状态,不修改 Ubuntu、麒麟或 Windows 虚拟机配置。
|
||
|
||
## 根因
|
||
|
||
绝对鼠标会话在连接中断、焦点切换或 SDL 队列丢失最后一个 `BUTTONUP` 时,客户端原来只释放键盘按键,未释放远端鼠标按钮。Ubuntu 会继续保持左键按下状态,因此窗口关闭、最大化、最小化按钮和拖拽都会表现为“点不到/卡住”。
|
||
|
||
## 修复
|
||
|
||
新增 `0006-vdi-release-stuck-mouse-buttons.patch`:
|
||
|
||
- 会话退出时显式发送左、中、右、X1、X2 五个鼠标按钮的释放事件;
|
||
- SDL 窗口失焦时同样清理按钮状态;
|
||
- 保留现有绝对坐标、KMS 捕获、原生 Ubuntu 光标和拖拽顺序处理。
|
||
|
||
## 验证
|
||
|
||
- RKMPP 客户端重新编译成功;
|
||
- SDL 事件边界、输入优先级、绝对坐标移动→按下→移动→释放 1000 轮测试全部通过;
|
||
- 新客户端通过原生光标握手、KMS 捕获、2560×1440 H.264 硬件解码启动;
|
||
- 会话退出后 Ubuntu 已恢复普通 Sunshine,原生光标守护为 inactive;
|
||
- 旧客户端 SHA256:`5d4330f703d7f8e053bc3795ca42bdaf231c9e9dd8ebb00a612013adbcccee03`;
|
||
- 新客户端 SHA256:`a09140efb4400a63153e2063358dda6ebea166be20c5b9b882e667230b0ac61e`。
|
||
|
||
盒子端旧客户端和两台 Linux 原生光标配置已备份到 `~/vdi-terminal/backups/mouse-release-20261106-20261106-095251/`;如果回归出现异常,可以恢复旧二进制和旧校验值。
|
||
|
||
这次修复针对“按键状态残留”导致的点击/拖拽失效。画面编码和网络造成的帧延迟仍由 KMS/virtio 读回与 Ubuntu 端 libx264 软件编码决定。
|