fix: add X11BypassWindowManagerHint to panel popup window flags - #1698
Conversation
1. Add Qt.X11BypassWindowManagerHint flag to panel popup window on X11 platforms 2. Fix popup window positioning issues caused by window manager interference 3. Ensure popup window is placed correctly at the panel location 4. Maintain consistent behavior with other X11 popup windows in the environment Log: Fixed panel popup window positioning issue on X11 platforms Influence: 1. Verify panel popup window displays correctly on X11 with various window managers 2. Test popup window positioning and alignment with the panel 3. Confirm popup window appears above other windows 4. Test on Wayland to ensure no regression in window behavior 5. Verify popup window functionality across different desktop environments fix: 为面板弹窗窗口添加X11BypassWindowManagerHint标志 1. 在X11平台上为面板弹窗窗口添加Qt.X11BypassWindowManagerHint标志 2. 修复窗口管理器干扰导致的弹窗定位问题 3. 确保弹窗窗口正确显示在面板位置 4. 保持与其他X11环境弹窗窗口行为的一致性 Log: 修复X11平台面板弹窗定位问题 Influence: 1. 在X11平台使用不同窗口管理器验证面板弹窗显示正常 2. 测试弹窗窗口与面板的对齐和定位 3. 确认弹窗窗口显示在其他窗口之上 4. 在Wayland平台测试确保窗口行为无回归 5. 在不同桌面环境下验证弹窗窗口功能 PMS: BUG-373349
Reviewer's guide (collapsed on small PRs)Reviewer's GuideAdds the Qt.X11BypassWindowManagerHint flag to the panel popup window on X11 (xcb) to prevent window manager interference and fix positioning/stacking behavior while keeping non-X11 behavior unchanged. Flow diagram for setting PanelPopupWindow flags on X11 vs non-X11flowchart LR
A[PanelPopupWindow initialization] --> B{Qt.platform.pluginName === xcb}
B -->|true| C[flags = Qt.Tool or Qt.WindowStaysOnTopHint or Qt.X11BypassWindowManagerHint]
B -->|false| D[flags = Qt.Popup]
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 left some high level feedback:
- Consider extracting the X11-specific flag logic into a helper or shared component so other X11 popup windows can reuse the same configuration and avoid duplicating the platform check.
- Adding Qt.X11BypassWindowManagerHint may affect focus and interaction behavior; it would be helpful to explicitly verify and, if needed, constrain this flag to only the scenarios where window manager interference is known to cause positioning issues.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider extracting the X11-specific flag logic into a helper or shared component so other X11 popup windows can reuse the same configuration and avoid duplicating the platform check.
- Adding Qt.X11BypassWindowManagerHint may affect focus and interaction behavior; it would be helpful to explicitly verify and, if needed, constrain this flag to only the scenarios where window manager interference is known to cause positioning issues.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
deepin pr auto review★ 总体评分:100分■ 【总体评价】
■ 【详细分析】
■ 【改进建议代码示例】 --- a/frame/qml/PanelPopupWindow.qml
+++ b/frame/qml/PanelPopupWindow.qml
@@ -74,7 +74,7 @@ PopupWindow {
width: 10
height: 10
- flags: (Qt.platform.pluginName === "xcb" ? (Qt.Tool | Qt.WindowStaysOnTopHint) : Qt.Popup)
+ flags: (Qt.platform.pluginName === "xcb" ? (Qt.Tool | Qt.WindowStaysOnTopHint | Qt.X11BypassWindowManagerHint) : Qt.Popup)
font: D.DTK.fontManager.t6
D.DWindow.enabled: true
D.DWindow.windowRadius: D.DTK.platformTheme.windowRadius < 0 ? 4 : D.DTK.platformTheme.windowRadius |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: mhduiy, 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 |
Log: Fixed panel popup window positioning issue on X11 platforms
Influence:
fix: 为面板弹窗窗口添加X11BypassWindowManagerHint标志
Log: 修复X11平台面板弹窗定位问题
Influence:
PMS: BUG-373349
Summary by Sourcery
Adjust panel popup window flags on X11 to avoid window manager interference and ensure correct positioning at the panel.
Bug Fixes:
Enhancements: