vdi-cloud/docs/ubuntu-mouse-release-20261106.md

1.7 KiB
Raw Blame History

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 软件编码决定。