操作系统 / v2rayN / Core 版本
Ubuntu 26.04 LTS,KDE Plasma 6.6.6(Wayland 会话,v2rayN 经 XWayland 显示)/ v2rayN 7.24.7 / sing-box 1.13.18
预期情况
主窗口最小化后,从任务栏条目关闭,窗口隐藏到托盘,任务栏条目消失。
实际情况
关闭不生效,任务栏条目仍在。从该条目还原,得到一个只有边框、内容区透明的窗口,点击标题栏关闭按钮无反应。点一次托盘图标后窗口恢复正常。
成因在 Avalonia 的 X11 后端,v2rayN 侧无需改动。本 issue 作记录,方便其他 Linux 用户搜到成因和规避办法。
DefaultWindowMode.Hide() 只调用 XUnmapWindow,没有按 ICCCM 4.1.4 向 root 窗口补发 synthetic UnmapNotify。窗口已被窗口管理器最小化(已 unmap)时,对已 unmap 的窗口调用 XUnmapWindow 不产生任何事件,窗口管理器收不到客户端撤下窗口的通知,继续把它列在任务栏里。此时 Avalonia 侧 Window.Hide() 已停止渲染,窗口管理器后续把窗口映射回来时不重启渲染,内容区为空。再次关闭时因内部状态已是隐藏而直接返回。
上游修复:AvaloniaUI/Avalonia#22135 (2026-09-04 合入 main,带 backport-candidate-12.1.x 标签)
修复进入 v2rayN 的路径:Avalonia 回合到 12.1 分支并发布 12.1.x 补丁版,v2rayN 升级依赖后自动生效。当前 v2rayN 依赖为 Avalonia 12.1.2(#10089)。
复现方法
- Linux 桌面环境,X11 或 Wayland(后者经 XWayland)
- 参数设置中开启「关闭窗口时隐藏到托盘」
- 打开主窗口,点最小化
- 在任务栏该条目上右键,选关闭
- 观察:任务栏条目未消失
- 点击任务栏条目还原窗口,得到透明空窗口,标题栏关闭按钮无效
- 点击托盘图标,窗口恢复正常
规避办法:窗口最小化时不关闭它,先还原再关闭。已经出现空窗口时,点一次托盘图标可恢复。
软件日志
2026-09-02 21:06:14.1428-INFO OnClosing -> WindowClosing
2026-09-02 21:06:15.8690-INFO OnClosing -> WindowClosing
两条 OnClosing 对应第 4 步和第 6 步之后的关闭尝试,均未生效。日志没有异常记录,涉及的是窗口管理器与 Avalonia 之间的 X11 协议交互。
内核日志
与代理内核无关。窗口出现该状态时内核运行正常,代理功能不受影响。
额外信息
本机验证:用未改动的 v2rayN 7.24.7,只把 Avalonia.X11.dll 换成带上游补丁的版本,该现象消失,最小化状态下关闭可以隐藏到托盘。
我确认已更新至最新版本
我确认已查询历史issues
我确认系统版本是受支持的
🤖 Generated with Claude Code
操作系统 / v2rayN / Core 版本
Ubuntu 26.04 LTS,KDE Plasma 6.6.6(Wayland 会话,v2rayN 经 XWayland 显示)/ v2rayN 7.24.7 / sing-box 1.13.18
预期情况
主窗口最小化后,从任务栏条目关闭,窗口隐藏到托盘,任务栏条目消失。
实际情况
关闭不生效,任务栏条目仍在。从该条目还原,得到一个只有边框、内容区透明的窗口,点击标题栏关闭按钮无反应。点一次托盘图标后窗口恢复正常。
成因在 Avalonia 的 X11 后端,v2rayN 侧无需改动。本 issue 作记录,方便其他 Linux 用户搜到成因和规避办法。
DefaultWindowMode.Hide()只调用XUnmapWindow,没有按 ICCCM 4.1.4 向 root 窗口补发 syntheticUnmapNotify。窗口已被窗口管理器最小化(已 unmap)时,对已 unmap 的窗口调用XUnmapWindow不产生任何事件,窗口管理器收不到客户端撤下窗口的通知,继续把它列在任务栏里。此时 Avalonia 侧Window.Hide()已停止渲染,窗口管理器后续把窗口映射回来时不重启渲染,内容区为空。再次关闭时因内部状态已是隐藏而直接返回。上游修复:AvaloniaUI/Avalonia#22135 (2026-09-04 合入 main,带
backport-candidate-12.1.x标签)修复进入 v2rayN 的路径:Avalonia 回合到 12.1 分支并发布 12.1.x 补丁版,v2rayN 升级依赖后自动生效。当前 v2rayN 依赖为 Avalonia 12.1.2(#10089)。
复现方法
规避办法:窗口最小化时不关闭它,先还原再关闭。已经出现空窗口时,点一次托盘图标可恢复。
软件日志
两条
OnClosing对应第 4 步和第 6 步之后的关闭尝试,均未生效。日志没有异常记录,涉及的是窗口管理器与 Avalonia 之间的 X11 协议交互。内核日志
与代理内核无关。窗口出现该状态时内核运行正常,代理功能不受影响。
额外信息
本机验证:用未改动的 v2rayN 7.24.7,只把
Avalonia.X11.dll换成带上游补丁的版本,该现象消失,最小化状态下关闭可以隐藏到托盘。我确认已更新至最新版本
我确认已查询历史issues
我确认系统版本是受支持的
🤖 Generated with Claude Code