Skip to content

fix: intercept events during interactive move#1059

Closed
deepin-wm wants to merge 1 commit into
linuxdeepin:masterfrom
deepin-wm:fix/interactive-move-event-intercept
Closed

fix: intercept events during interactive move#1059
deepin-wm wants to merge 1 commit into
linuxdeepin:masterfrom
deepin-wm:fix/interactive-move-event-intercept

Conversation

@deepin-wm

Copy link
Copy Markdown
Contributor

Summary

Fix interactive move event interception defects in Treeland compositor, preventing pointer events from leaking to clients during interactive move/resize.

Changes

  1. Add HoverMove interception in beforeDisposeEvent to block hover events during interactive move/resize
  2. Add beforeHandleEvent override to prevent synthetic pointer events from bypassing the interception
  3. Add re-entry guard in beginMoveResize to prevent state corruption from duplicate beginMoveResizeForSeat calls
  4. Expose seatContainers() for per-seat container lookup
  5. Use QSinglePointEvent instead of QMouseEvent for HoverMove compatibility

Related

1. Add HoverMove interception in beforeDisposeEvent to
   block hover events during interactive move/resize
2. Add beforeHandleEvent override to prevent synthetic
   pointer events from bypassing the interception
3. Add re-entry guard in beginMoveResize to prevent
   state corruption from duplicate beginMoveResizeForSeat
4. Expose seatContainers() for per-seat container lookup
5. Use QSinglePointEvent instead of QMouseEvent for
   HoverMove compatibility

Log: Fixed interactive move event interception defect under Treeland

Influence:
1. Test interactive window move/resize under Treeland
2. Test QML6 app title bar drag and release
3. Test multi-seat move/resize scenarios
4. Verify no pointer events leak to client during move
5. Test window resize with edge dragging

fix: 修复交互式move期间事件拦截缺陷

1. beforeDisposeEvent新增HoverMove拦截,在交互式
   移动/缩放期间阻止hover事件
2. 新增beforeHandleEvent override防止合成指针事件
   绕过拦截
3. beginMoveResize新增防重入保护,防止重复调用
   beginMoveResizeForSeat导致状态损坏
4. 暴露seatContainers()接口用于按seat查找容器
5. 使用QSinglePointEvent替代QMouseEvent以兼容
   HoverMove事件

Log: 修复Treeland下交互式移动期间事件拦截缺陷

Influence:
1. 测试Treeland下交互式窗口移动/缩放
2. 测试QML6应用标题栏拖拽和释放
3. 测试多seat移动/缩放场景
4. 验证移动期间无指针事件泄露到客户端
5. 测试窗口边缘拖拽缩放

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

Sorry @deepin-wm, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: deepin-wm

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

@deepin-wm deepin-wm marked this pull request as draft June 25, 2026 11:46
@deepin-wm deepin-wm force-pushed the fix/interactive-move-event-intercept branch 2 times, most recently from b5e6c96 to 956787e Compare June 25, 2026 12:47
@deepin-bot

deepin-bot Bot commented Jun 26, 2026

Copy link
Copy Markdown

TAG Bot

New tag: 0.8.13
DISTRIBUTION: unstable
Suggest: synchronizing this PR through rebase #1063

@deepin-wm

Copy link
Copy Markdown
Contributor Author

此 PR 涉及的 treeland 侧修改经确认与当前 issue 无关,关闭该 PR。

@deepin-wm deepin-wm closed this Jun 26, 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