Skip to content

fix: disable x11 bypass flag in launcher windowed mode - #798

Closed
wjyrich wants to merge 1 commit into
linuxdeepin:masterfrom
wjyrich:fix-bug-394541
Closed

fix: disable x11 bypass flag in launcher windowed mode#798
wjyrich wants to merge 1 commit into
linuxdeepin:masterfrom
wjyrich:fix-bug-394541

Conversation

@wjyrich

@wjyrich wjyrich commented Aug 20, 2026

Copy link
Copy Markdown
Contributor
  1. Set useX11BypassWindowManagerHint to false in the windowed mode launcher PanelPopup
  2. This ensures the launcher window respects window manager positioning and stacking rules on systems that may have issues with the bypass hint

Log: Fixed launcher windowed mode positioning on X11 systems

Influence:

  1. Verify the windowed mode launcher still opens correctly
  2. Test that the launcher window is properly positioned and can be managed by the window manager
  3. Verify launcher visibility toggling still works in windowed mode

fix: 在启动器窗口模式中禁用x11绕过标志

  1. 将窗口模式启动器的 PanelPopup 中的 useX11BypassWindowManagerHint 设置为 false
  2. 确保启动器窗口在具有绕过提示问题的系统上遵守窗口管理器的定位和堆叠 规则

Log: 修复 X11 系统上启动器窗口模式的定位问题

Influence:

  1. 验证窗口模式启动器仍能正常打开
  2. 测试启动器窗口能被正确定位并可被窗口管理器管理
  3. 验证窗口模式下启动器的可见性切换功能仍然正常

PMS: TASK-394541

Summary by Sourcery

Bug Fixes:

  • Fix launcher windowed-mode positioning on X11 by allowing the window manager to control its placement and stacking.

1. Set `useX11BypassWindowManagerHint` to `false` in the windowed mode
launcher PanelPopup
2. This ensures the launcher window respects window manager positioning
and stacking rules on systems that may have issues with the bypass hint

Log: Fixed launcher windowed mode positioning on X11 systems

Influence:
1. Verify the windowed mode launcher still opens correctly
2. Test that the launcher window is properly positioned and can be
managed by the window manager
3. Verify launcher visibility toggling still works in windowed mode

fix: 在启动器窗口模式中禁用x11绕过标志

1. 将窗口模式启动器的 `PanelPopup` 中的 `useX11BypassWindowManagerHint`
设置为 `false`
2. 确保启动器窗口在具有绕过提示问题的系统上遵守窗口管理器的定位和堆叠
规则

Log: 修复 X11 系统上启动器窗口模式的定位问题

Influence:
1. 验证窗口模式启动器仍能正常打开
2. 测试启动器窗口能被正确定位并可被窗口管理器管理
3. 验证窗口模式下启动器的可见性切换功能仍然正常

PMS: TASK-394541
@deepin-ci-robot

Copy link
Copy Markdown

[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.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sourcery-ai

sourcery-ai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

This PR adjusts the windowed-mode launcher popup’s X11 window manager behavior by disabling the bypass hint, ensuring it obeys normal positioning/stacking rules, and includes a minor Debian packaging control file change.

File-Level Changes

Change Details Files
Disable X11 bypass window manager hint for the windowed-mode launcher popup so the window is managed normally by the window manager.
  • Set useX11BypassWindowManagerHint to false on the windowedModeLauncher PanelPopup instance.
  • Ensure the launcher window in windowed mode respects window manager positioning, stacking, and visibility management.
shell-launcher-applet/package/launcheritem.qml
Update Debian packaging control metadata (details not shown in the diff excerpt).
  • Modify debian/control to reflect packaging-related changes for this launcher behavior update.
debian/control

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

★ 总体评分:95分

■ 【总体评价】

代码通过显式关闭X11窗口管理器绕过提示修复了窗口行为异常问题,逻辑正确且依赖更新合理
修复方案清晰有效,无安全漏洞,仅在代码注释方面略有提升空间

■ 【详细分析】

  • 1.语法逻辑(完全正确)✓

shell-launcher-applet/package/launcheritem.qml 第268行为 PanelPopup 组件新增 useX11BypassWindowManagerHint: false 属性,符合 QML 语法规范,属性类型为布尔值,赋值正确。
潜在问题:无
建议:无需修改

  • 2.代码质量(良好)✓

代码修改简洁直接,debian/control 中依赖版本提升至 2.0.53 与新增属性的需求相匹配,确保了编译环境的正确性。
潜在问题:缺少对新增属性 useX11BypassWindowManagerHint: false 的代码注释,不利于后续维护者理解为何显式设置为 false。
建议:在属性上方添加简短注释说明原因,如 // 显式关闭绕过窗口管理器,修复X11下窗口行为异常

  • 3.代码性能(无性能问题)✓

仅设置一个布尔类型的组件属性,不涉及复杂的计算或资源分配,对运行时性能无负面影响。
潜在问题:无
建议:无需修改

  • 4.代码安全(存在0个安全漏洞)✓

漏洞对比统计:新增漏洞 0 个,减少漏洞 0 个,持平 0 个
本次修改仅涉及 UI 组件属性配置和编译依赖版本更新,不存在外部输入处理、文件操作或网络通信,无安全风险。

  • 建议:无需安全修复

■ 【改进建议代码示例】

diff --git a/shell-launcher-applet/package/launcheritem.qml b/shell-launcher-applet/package/launcheritem.qml
index b14ba723..69456f1c 100644
--- a/shell-launcher-applet/package/launcheritem.qml
+++ b/shell-launcher-applet/package/launcheritem.qml
@@ -265,6 +265,8 @@ AppletItem {
 
     PanelPopup {
         id: windowedModeLauncher
+        // 显式关闭绕过窗口管理器,修复X11下窗口行为异常
+        useX11BypassWindowManagerHint: false
 
         property bool visibility: LauncherController.visible && (LauncherController.currentFrame === "WindowedFrame")

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Consider whether other PanelPopup usages in the launcher or shell should also have useX11BypassWindowManagerHint explicitly set for consistent window manager behavior across modes.
  • If this change is intended to affect only X11, you may want to guard it with platform checks or confirm that forcing useX11BypassWindowManagerHint: false does not introduce regressions on Wayland or non-X11 environments.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider whether other `PanelPopup` usages in the launcher or shell should also have `useX11BypassWindowManagerHint` explicitly set for consistent window manager behavior across modes.
- If this change is intended to affect only X11, you may want to guard it with platform checks or confirm that forcing `useX11BypassWindowManagerHint: false` does not introduce regressions on Wayland or non-X11 environments.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@wjyrich wjyrich closed this Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants