You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add PositionFixer component for pixel-perfect positioning
Added a new PositionFixer QML component to handle pixel-perfect
positioning of items within the dock panel. This component replaces
multiple ad-hoc position fixing implementations in AppItem.qml and
ShellSurfaceItemProxy.qml with a unified solution. The fixer calculates
the correct physical pixel position considering device pixel ratio and
applies rounding or ceiling to prevent sub-pixel rendering issues that
cause blurriness.
Key changes:
1. Created PositionFixer C++ class with QML integration
2. Added PositionFixer to AppletItemButton.qml for applet positioning
3. Replaced manual position fixing in AppItem.qml with PositionFixer
4. Replaced manual position fixing in ShellSurfaceItemProxy.qml with
PositionFixer
5. Added CMakeLists.txt entries for new PositionFixer files
The PositionFixer component provides configurable options including
useCeil for ceiling operations and useZeroTarget for positioning at
origin. It uses a delayed timer to ensure proper timing for position
calculations.
Log: Improved icon and surface positioning accuracy in dock panel
Influence:
1. Test applet icons in dock panel for proper positioning without
blurriness
2. Verify application icons in task manager maintain crisp edges
3. Check shell surface items (like system tray popups) render at correct
pixel boundaries
4. Test with different display scaling factors (100%, 150%, 200%)
5. Verify drag-and-drop operations still work correctly
6. Test launch animations don't interfere with positioning
feat: 添加 PositionFixer 组件实现像素级精确定位
新增 PositionFixer QML 组件,用于处理任务栏面板内项目的像素级精确定位。
该组件取代了 AppItem.qml 和 ShellSurfaceItemProxy.qml 中多个临时位置修
复实现,提供了统一的解决方案。修复器会计算考虑设备像素比的正确物理像素位
置,并应用四舍五入或向上取整操作,防止导致模糊的子像素渲染问题。
主要变更:
1. 创建了带有 QML 集成的 PositionFixer C++ 类
2. 在 AppletItemButton.qml 中添加 PositionFixer 用于小程序定位
3. 在 AppItem.qml 中用 PositionFixer 替换手动位置修复
4. 在 ShellSurfaceItemProxy.qml 中用 PositionFixer 替换手动位置修复
5. 在 CMakeLists.txt 中添加新 PositionFixer 文件的条目
PositionFixer 组件提供可配置选项,包括用于向上取整操作的 useCeil 和用于
原点定位的 useZeroTarget。它使用延迟计时器确保位置计算的正确时机。
Log: 提升任务栏面板中图标和表面定位的准确性
Influence:
1. 测试任务栏面板中的小程序图标定位是否正确且无模糊
2. 验证任务管理器中的应用图标是否保持清晰边缘
3. 检查外壳表面项目(如系统托盘弹出窗口)是否在正确的像素边界渲染
4. 使用不同的显示缩放比例测试(100%、150%、200%)
5. 验证拖放操作是否仍能正常工作
6. 测试启动动画是否不会干扰定位
0 commit comments