fix(dock): close legacy tray tooltip on popup destruction - #1663
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: svan71 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 |
|
Hi @svan71. Thanks for your PR. 😃 |
|
Hi @svan71. Thanks for your PR. I'm waiting for a linuxdeepin member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
TAG Bot New tag: 2.0.51 |
|
TAG Bot New tag: 2.0.52 |
5b66a6c to
9badd94
Compare
Legacy tray tooltip content is owned by a plugin popup while the translucent tooltip host is owned by dde-shell. The plugin loader hides and destroys its popup, but ShellSurfaceItemProxy.onSurfaceDestroyed is not emitted for that teardown, so TrayItemSurfacePopup never closes the shared host and leaves an empty translucent background. Connect the tooltip to PluginPopup.aboutToDestroy so the host closes at the correct lifecycle boundary. Fixes Volume/Clipboard tooltip ghost backgrounds after pointer leave.
9badd94 to
24a534f
Compare
|
Marked ready for review and rebased onto current CLA / commitlint / SPDX / cppcheck are green. Would appreciate an |
Reviewer's guide (collapsed on small PRs)Reviewer's GuideConnect legacy tray tooltip closure to the PluginPopup’s aboutToDestroy lifecycle signal so the shared translucent tooltip host is closed when the popup is torn down, eliminating orphaned tooltip backgrounds in the dock tray. Sequence diagram for legacy tray tooltip closing on PluginPopup.aboutToDestroysequenceDiagram
participant PluginPopup as PluginPopup_shellSurface
participant TrayPopup as TrayItemSurfacePopup
participant ToolTip as toolTip
participant Host as TooltipHost
PluginPopup->>TrayPopup: aboutToDestroy
TrayPopup->>ToolTip: close()
ToolTip->>Host: close()
Host-->>PluginPopup: [tooltip host destroyed]
File-Level Changes
Assessment against linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
What changed
Close a legacy tray tooltip directly when its
PluginPopupemitsaboutToDestroy.Fixes linuxdeepin/developer-center#13616.
Root cause
Legacy tray tooltip content is owned by a plugin popup while the translucent
tooltip host is owned by
dde-shell. The plugin loader correctly hides anddestroys its popup, but
ShellSurfaceItemProxy.onSurfaceDestroyedis not emittedfor this teardown.
TrayItemSurfacePopuptherefore never closes the shared host,leaving an empty translucent background after the text disappears.
PluginPopup.aboutToDestroyis the authoritative server-side lifecycle signaland is emitted immediately before the popup object is deleted. Connecting the
tooltip to that signal closes the host at the correct boundary.
Impact
Legacy tray items such as Volume and Clipboard dismiss their tooltip background
correctly. Native actions such as Quick Actions and Collapse Tray are unchanged.
Validation
popup-map removal, and
PluginPopupSurfacedestruction all completed.ShellSurfaceItemProxy.onSurfaceDestroyedhandler did notrun for the plugin popup teardown.
connection.
both now dismiss cleanly.
Summary by Sourcery
Bug Fixes: