Skip to content

fix(dock): sync the work area after Wayland resize - #1802

Merged
zccrs merged 1 commit into
linuxdeepin:masterfrom
gugullll:fix/dock-reszie
Nov 10, 2026
Merged

zccrs merged 1 commit into
linuxdeepin:masterfrom
gugullll:fix/dock-reszie

Conversation

@gugullll

@gugullll gugullll commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor
  1. Keep listening for Dock geometry changes after the drag ends.
  2. Write the width for vertical docks and the height for horizontal docks to the saved Dock size.
  3. Let the existing exclusive zone binding pick up late size changes.

Log: Keep the work area in sync when the Dock is resized on Wayland.

fix(dock): 修复 Wayland 下拖动 Dock 后工作区未同步

  1. 拖动结束后继续监听 Dock 窗口尺寸变化。
  2. 竖向 Dock 保存宽度,横向 Dock 保存高度。
  3. 让现有独占区绑定跟随松手后才生效的尺寸。

Log: Wayland 下调整 Dock 大小时同步更新工作区。

Summary by Sourcery

Synchronize Dock geometry and work-area sizing after Wayland resizes.

Bug Fixes:

  • Keep the Dock work area synchronized after Wayland resize operations complete.

Enhancements:

  • Continue tracking compositor-driven Dock size changes after resizing, updating saved dimensions according to the Dock orientation while allowing existing exclusive-zone bindings to follow late updates.

@sourcery-ai

sourcery-ai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Implementation

Keep tracking compositor-driven dock size changes after resizing ends, persist the dock’s orientation-appropriate dimension, and update the applet size while animations are inactive.

  • panels/dock/package/main.qml L865-871, L878

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

@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 found 2 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="panels/dock/package/main.qml" line_range="865" />
<code_context>
     Connections {
         target: dock
-        enabled: dock.compositorDrivenResize && Applet.isResizing
+        enabled: dock.compositorDrivenResize
         function onWidthChanged() {
             if (dock.useColumnLayout) {
</code_context>
<issue_to_address>
**Animated size changes persist**

When a Wayland or compositor-driven Dock above its minimum size runs a hide or position-change animation, `onWidthChanged` and `onHeightChanged` write each intermediate dimension to `Applet.dockSize`; accepted sizes overwrite the saved value, so the Dock reopens smaller.

Prevent these geometry handlers from updating `Applet.dockSize` during hide and position-change animations, such as by gating them on `Applet.isResizing`.

Also at `panels/dock/package/main.qml:868`, `panels/dock/package/main.qml:874-875`.
</issue_to_address>

### Comment 2
<location path="panels/dock/package/main.qml" line_range="868" />
<code_context>
         function onWidthChanged() {
             if (dock.useColumnLayout) {
-                dock.dockSize = dock.width
+                Applet.dockSize = dock.width
             }
         }
</code_context>
<issue_to_address>
**Stale drag size wins**

When a client requests a new Dock size before delayed geometry from an earlier compositor-driven drag arrives, `onWidthChanged` and `onHeightChanged` write the stale geometry to `Applet.dockSize`, overwriting the newer request; the caller's setting reverts and the exclusive zone follows the stale size.

Ignore geometry updates from an earlier drag when a newer Dock size request has superseded them.

Also at `panels/dock/package/main.qml:875`.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread panels/dock/package/main.qml Resolved
Comment thread panels/dock/package/main.qml Resolved
Comment thread panels/dock/package/main.qml Resolved
Comment thread panels/dock/package/main.qml Resolved
1. Keep listening for Dock geometry changes after the drag ends.
2. Write the width for vertical docks and the height for horizontal docks
   to the saved Dock size.
3. Let the existing exclusive zone binding pick up late size changes.

Log: Keep the work area in sync when the Dock is resized on Wayland.

fix(dock): 修复 Wayland 下拖动 Dock 后工作区未同步

1. 拖动结束后继续监听 Dock 窗口尺寸变化。
2. 竖向 Dock 保存宽度,横向 Dock 保存高度。
3. 让现有独占区绑定跟随松手后才生效的尺寸。

Log: Wayland 下调整 Dock 大小时同步更新工作区。
@deepin-ci-robot

Copy link
Copy Markdown

deepin pr auto review

🤖 AI 代码审查报告

总体评分: 100 分 (通过阈值: 70分)

Pass


📊 总体评价

项目 结果
审查结论 代码审查通过
评分详情 本次提交修复了 Wayland 合成器驱动下 Dock 重启后工作区不同步的问题。修改了 Connections 的 enabled 条件,增加对 hideShowAnimation 和 dockAnimation 运行状态的判断,避免动画期间触发不必要的 resize 处理;同时在 onWidthChanged/onHeightChanged 中同步 Applet.dockSize,确保工作区与 dock 尺寸一致。四维度均通过,无安全漏洞。

🔍 详细分析

1. 语法逻辑 ✅

评价: 语法正确,逻辑清晰 ✅ 通过

潜在问题:
✅ 未发现明显问题

建议: []


2. 代码质量 ✅

评价: 代码结构清晰,注释完整 ✅ 通过

潜在问题:
✅ 未发现明显问题

建议: []


3. 代码性能 ✅

评价: 性能良好,资源使用合理 ✅ 通过

潜在问题:
✅ 未发现明显问题

建议: []


4. 代码安全 🔒

评价: 存在0个安全漏洞 ✅ 通过

🔐 发现 0 个安全漏洞

安全漏洞详情:
✅ 未发现安全漏洞

建议: []


💡 改进建议代码示例


本报告由 AI 代码审查工具自动生成

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: gugullll, zccrs

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

@zccrs
zccrs merged commit 52a0ea8 into linuxdeepin:master Nov 10, 2026
5 of 8 checks passed
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.

3 participants