refactor: replace PanelPopup with ApplicationWindow for windowed - #801
refactor: replace PanelPopup with ApplicationWindow for windowed#801wjyrich wants to merge 1 commit into
Conversation
Reviewer's GuideRefactors the windowed launcher from PanelPopup to ApplicationWindow, using layer-shell positioning, reusable dock-screen assignment, themed blur and border styling, and explicit focus/visibility lifecycle handling. Sequence diagram for windowed launcher activation and focus handlingsequenceDiagram
participant Controller as LauncherController
participant Window as ApplicationWindow
participant Screen as DockScreen
participant Frame as WindowedFrame
Controller->>Window: visible = true
Window->>Screen: assignDockScreen(window)
Window->>Window: requestActivate()
Window->>Controller: closeAllPopups()
Window->>Frame: display with layer-shell positioning
alt window active
Window->>Controller: cancelHide()
else window inactive
Window->>Controller: hideWithTimer()
end
Window->>Controller: onClosing sets visible = false
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 1 issue
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="shell-launcher-applet/package/launcheritem.qml" line_range="286" />
<code_context>
- launcher.itemPos.y + height / 2 * (Panel.position % 2),
- width, height)
+ transientParent: null
+ flags: Qt.Window | Qt.FramelessWindowHint
+ color: "transparent"
+
</code_context>
<issue_to_address>
**issue (bug_risk):** The windowed launcher is now created with `Qt.Window | Qt.FramelessWindowHint` instead of a tool/popup-style window, so it is treated as a normal application window and can appear in task switching and window lists rather than remaining an auxiliary launcher window.
**Triggers:** When the desktop environment exposes ordinary application windows in the taskbar, dock window list, or Alt-Tab switcher.
**Suggested fix:** Include the appropriate tool/auxiliary-window flag, such as `Qt.Tool`, unless layer-shell integration explicitly suppresses normal window management for this window.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| launcher.itemPos.y + height / 2 * (Panel.position % 2), | ||
| width, height) | ||
| transientParent: null | ||
| flags: Qt.Window | Qt.FramelessWindowHint |
There was a problem hiding this comment.
issue (bug_risk): The windowed launcher is now created with Qt.Window | Qt.FramelessWindowHint instead of a tool/popup-style window, so it is treated as a normal application window and can appear in task switching and window lists rather than remaining an auxiliary launcher window.
Triggers: When the desktop environment exposes ordinary application windows in the taskbar, dock window list, or Alt-Tab switcher.
Suggested fix: Include the appropriate tool/auxiliary-window flag, such as Qt.Tool, unless layer-shell integration explicitly suppresses normal window management for this window.
launcher 1. Replace PanelPopup with ApplicationWindow for the windowed launcher mode 2. Refactor screen assignment logic into reusable functions (dockScreen/ assignDockScreen) 3. Simplify fullscreen frame visibility logic in onViewDeactivated 4. Add DLayerShellWindow properties for precise dock-relative positioning 5. Add DWindow blur effects, theming, and border styling 6. Implement blur-aware background with appearance-based opacity 7. Add focus/active state handling with hide timer coordination The windowed launcher previously used PanelPopup which has limited positioning and styling capabilities. The ApplicationWindow approach provides proper window management features like layer shell positioning, native blur effects, and atomic behavior control. The screen assignment refactoring improves code quality by separating screen detection from assignment. Log: Improved windowed launcher mode with better positioning, blur effects, and focus handling Influence: 1. Test windowed launcher display on different dock positions (top/ bottom/left/right) 2. Verify launcher positioning relative to dock and screen edges 3. Test blur background effect in both light and dark themes 4. Verify launcher hides when clicking outside or losing focus 5. Test multi-screen scenarios with different screen configurations 6. Verify windowed launchpad opens and closes correctly 7. Test windowed launchpad with different dock spacing/thickness settings refactor: 将窗口模式启动器从 PanelPopup 替换为 ApplicationWindow 1. 将窗口模式启动器从 PanelPopup 替换为 ApplicationWindow 2. 将屏幕分配逻辑重构为可复用函数(dockScreen/assignDockScreen) 3. 简化 onViewDeactivated 中的全屏框架可见性逻辑 4. 添加 DLayerShellWindow 属性以实现精确的坞站相对定位 5. 添加 DWindow 模糊效果、主题和边框样式 6. 实现基于外观透明度的模糊感知背景 7. 添加焦点/激活状态处理与隐藏定时器协调 窗口模式启动器之前使用 PanelPopup,其定位和样式能力有限。 ApplicationWindow 方案提供了正确的窗口管理功能,如图层壳定位、原生模糊效 果和原子行为控制。屏幕分配重构通过分离屏幕检测与分配来提高代码质量。 Log: 改进窗口模式启动器,优化定位、模糊效果和焦点处理 Influence: 1. 测试不同坞站位置(上/下/左/右)下窗口模式启动器的显示 2. 验证启动器相对于坞站和屏幕边缘的定位 3. 在浅色和深色主题中测试模糊背景效果 4. 验证点击外部或失去焦点时启动器是否正确隐藏 5. 测试不同屏幕配置下的多屏场景 6. 验证窗口模式启动器的打开和关闭功能 7. 测试不同坞站间距/厚度设置下的窗口模式启动器 PMS: TASK-394725
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wjyrich The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
1 similar comment
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wjyrich The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
launcher
The windowed launcher previously used PanelPopup which has limited positioning and styling capabilities. The ApplicationWindow approach provides proper window management features like layer shell positioning, native blur effects, and atomic behavior control. The screen assignment refactoring improves code quality by separating screen detection from assignment.
Log: Improved windowed launcher mode with better positioning, blur effects, and focus handling
Influence:
refactor: 将窗口模式启动器从 PanelPopup 替换为 ApplicationWindow
窗口模式启动器之前使用 PanelPopup,其定位和样式能力有限。
ApplicationWindow 方案提供了正确的窗口管理功能,如图层壳定位、原生模糊效
果和原子行为控制。屏幕分配重构通过分离屏幕检测与分配来提高代码质量。
Log: 改进窗口模式启动器,优化定位、模糊效果和焦点处理
Influence:
PMS: TASK-394725
Summary by Sourcery
Modernize the windowed launcher with application-window behavior, precise dock-relative positioning, enhanced visual effects, and reliable focus handling.
New Features:
Bug Fixes:
Enhancements: