-
Notifications
You must be signed in to change notification settings - Fork 43
feat: support treeland prelaunch splash manager v2 #332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: wineee 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Adds support for the treeland prelaunch splash manager v2 protocol by associating splashes with application instance IDs and managing their lifecycle alongside instance creation/removal.
Changes:
- Switch Wayland protocol generation and helper implementation from prelaunch-splash v1 to v2.
- Generate and propagate an instance UUID early so the compositor can associate a splash with a specific instance.
- Track and close splash objects per instance, including bulk cleanup on instance detachment and helper destruction.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/dbus/prelaunchsplashhelper.h | Updates helper API to v2 and adds per-instance splash object tracking. |
| src/dbus/prelaunchsplashhelper.cpp | Implements v2 create/close logic and destructor cleanup for tracked splash objects. |
| src/dbus/applicationservice.h | Adds tracking for splash instance IDs and declares new cleanup helpers. |
| src/dbus/applicationservice.cpp | Generates instance UUID earlier, shows splash with instance association, and closes splashes on instance lifecycle events. |
| src/dbus/CMakeLists.txt | Switches generated Wayland protocol sources from v1 XML to v2 XML. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| auto *splash = new QtWayland::treeland_prelaunch_splash_v2(); | ||
| splash->init(create_splash(appId, instanceId, QStringLiteral("dde-application-manager"), buffer)); | ||
| m_splashObjects.insert(instanceId, splash); | ||
| qCInfo(amPrelaunchSplash, "Sent create_splash for %s instance %s %s", |
Copilot
AI
Feb 10, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
m_splashObjects.insert(instanceId, splash) will overwrite any existing entry for the same instanceId without destroying/deleting the previous splash object, which leaks the wrapper and may leave the compositor-side splash undisposed. Handle the "already has splash for this instance" case by closing/replacing safely before inserting.
1. Upgrade from treeland-prelaunch-splash-v1 to v2 protocol 2. Generate instance UUID early for splash association 3. Track splash objects per instance ID for proper lifecycle management 4. Add closeSplashForInstance and closeAllSplashes methods 5. Implement proper cleanup of splash objects in destructor Log: Added support for treeland prelaunch splash manager v2 with instance-based splash management Influence: 1. Test application launch with prelaunch splash display 2. Verify splash closes when instance is removed normally 3. Test multiple instances of same application with separate splashes 4. Verify splash cleanup during application manager shutdown 5. Test client crash scenarios to ensure orphaned splashes are cleaned up 6. Validate Wayland protocol compatibility with updated v2 interface feat: 支持 treeland 预启动闪屏管理器 v2 1. 从 treeland-prelaunch-splash-v1 升级到 v2 协议 2. 提前生成实例 UUID 用于闪屏关联 3. 按实例 ID 跟踪闪屏对象以实现正确的生命周期管理 4. 添加 closeSplashForInstance 和 closeAllSplashes 方法 5. 在析构函数中实现闪屏对象的正确清理 Log: 新增支持 treeland 预启动闪屏管理器 v2,支持基于实例的闪屏管理 Influence: 1. 测试应用程序启动时的预启动闪屏显示 2. 验证实例正常移除时闪屏正确关闭 3. 测试同一应用程序多个实例的独立闪屏管理 4. 验证应用程序管理器关闭时的闪屏清理 5. 测试客户端崩溃场景确保孤儿闪屏被清理 6. 验证与更新 v2 接口的 Wayland 协议兼容性
Log: Added support for treeland prelaunch splash manager v2 with instance-based splash management
Influence:
feat: 支持 treeland 预启动闪屏管理器 v2
Log: 新增支持 treeland 预启动闪屏管理器 v2,支持基于实例的闪屏管理
Influence: