-
-
Notifications
You must be signed in to change notification settings - Fork 200
[Bug] 多显示器Windows 端经 RDP 远程连接后,Kelivo 窗口可能因坐标超出屏幕范围而不可见 #432
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
问题描述
在 Windows 系统上使用 Kelivo 时,如果通过微软远程桌面(mstsc/RDP)连接该电脑,在远程会话结束并解锁本地电脑后,Kelivo 的主窗口有概率不会显示在屏幕上。
复现步骤
- 在本地电脑上打开 Kelivo 应用程序。
- 使用
mstsc从另一台电脑远程连接到此电脑。 - 结束远程会话,回到本地电脑并解锁屏幕。
- 观察任务栏或屏幕,发现 Kelivo 窗口不可见(无法点击或看到界面)。
预期行为
无论是否经过 RDP 远程连接,Kelivo 窗口应始终显示在屏幕可见区域内。
实际行为
窗口似乎“消失”了。经排查 shared_preferences.json 配置文件,发现 window_pos 记录的两个坐标变量(X, Y)数值超出了当前屏幕的分辨率范围,导致窗口渲染在屏幕可视区域之外。
Environment
操作系统: Windows 11
软件版本: 任意版本
Screenshots or Video
No response
Additional context
原因分析
RDP 远程会话可能会改变屏幕分辨率或坐标系。当会话结束恢复本地环境时,程序读取了旧的窗口位置配置,但该坐标在当前本地分辨率下已失效(超出边界),且程序缺乏边界校验机制。
建议修复方案
建议在程序启动加载窗口位置信息时,增加边界检查逻辑:
- 读取
window_pos坐标。 - 判断坐标是否超出当前屏幕的有效分辨率范围。
- 如果超出,则忽略配置值,将窗口重置为默认位置(如屏幕中心或左上角),防止窗口不可见。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working