Previously, the applet subscribed to layout updates for all items immediately upon registration (eager-loading). This caused severe issues with applications like VLC, which fail to respond to `com.canonical.dbusmenu.GetLayout` calls during high-load operations (e.g., initializing video playback). These unanswered calls resulted in DBus timeouts that: 1. Flooded the connection queue. 2. Blocked the processing of other signals (like `Unregistered`). 3. Caused the applet to become unresponsive and the icon to persist (ghosting). This patch modifies the subscription logic to only subscribe to layout updates when the specific menu is actually open. This "lazy-loading" approach: - Prevents hitting applications with DBus calls during vulnerable states. - Drastically reduces unnecessary DBus traffic. |
||
|---|---|---|
| .. | ||
| data | ||
| src | ||
| Cargo.toml | ||