DockDoor项目中的多显示器Dock预览定位问题分析
DockDoor Window peeking for macOS 项目地址: https://gitcode.com/gh_mirrors/do/DockDoor
问题现象
在macOS系统下使用DockDoor应用时,当用户将窗口聚焦在第二显示器上时,Dock预览功能会出现异常表现。具体表现为:预览窗口不再正常显示在Dock附近,而是错误地出现在主显示器左侧边缘,呈现类似Stage Manager模式的垂直排列方式。
问题根源
经过技术分析,该问题的根本原因在于DockDoor应用在计算鼠标位置时出现了错误。当检测鼠标位置失败时,系统会默认使用主显示器左下角(坐标.zero)作为位置参考点。这种错误主要发生在以下配置环境下:
- 用户使用双显示器配置
- 主显示器位于右侧,副显示器位于左侧
- Dock自动隐藏功能处于关闭状态
技术细节
在macOS的多显示器环境中,DockDoor需要准确识别当前活动的Dock位置。当窗口聚焦在非主显示器时,应用需要:
- 正确获取鼠标当前位置
- 确定当前活动的Dock所在显示器
- 计算预览窗口的合适显示位置
在出现问题的配置中,由于坐标计算错误,应用错误地将预览窗口定位到了主显示器左侧边缘,而非预期的Dock附近位置。
解决方案
开发团队通过以下方式解决了该问题:
- 修复了鼠标位置检测逻辑,确保在多显示器环境下能正确获取坐标
- 改进了Dock位置计算算法,避免默认使用.zero坐标
- 增加了对Dock隐藏状态的检测处理
用户可以通过以下方式验证问题是否解决:
- 确保使用最新版本的DockDoor应用
- 检查Dock自动隐藏功能的设置状态
- 在不同显示器间切换窗口焦点,观察预览窗口的显示位置
兼容性说明
该问题主要影响以下环境配置:
- macOS版本:14.6.1
- 显示器配置:双显示器,主显示器位于右侧
- Dock设置:自动隐藏功能关闭
- Dock大小:各种尺寸均可能受影响
开发团队建议用户保持应用更新,以获得最佳的多显示器支持体验。对于仍遇到问题的用户,可以尝试临时启用Dock自动隐藏功能作为变通解决方案。
DockDoor Window peeking for macOS 项目地址: https://gitcode.com/gh_mirrors/do/DockDoor
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考