https://bugs.kde.org/show_bug.cgi?id=494003

Akseli Lahtinen <akse...@akselmo.dev> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/plasma-workspace/-/commi
                   |                            |t/20255a4c54891c349d322a2e9
                   |                            |92c136e041b9c22
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #6 from Akseli Lahtinen <akse...@akselmo.dev> ---
Git commit 20255a4c54891c349d322a2e992c136e041b9c22 by Akseli Lahtinen.
Committed on 04/10/2024 at 11:17.
Pushed by akselmo into branch 'master'.

systemtray.cpp: Make AppletRemoved signal a singleshot connection

If user disables an entry in system settings, this connection
will end up in an endless loop:

When the `cleanupPlugin` is called, 
we eventually end up calling 
`SystemTray::onEnabledAppletsChanged` 
through `SystemTraySettings::enabledPluginsChanged` signal.

There we delete applet and applets deconstructor calls 
`appletDeleted`.

This then ends up in `ContainmentPrivate::appletDeleted` where 
the signal `appletRemoved` is emitted.

This then makes the signal run over this same connection, then 
`cleanupPlugin`.. And it loops.

Adding `Qt::SingleShotConnection` disconnects the connection 
after it's called, so it won't get stuck in a loop.

M  +15   -10   applets/systemtray/systemtray.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/20255a4c54891c349d322a2e992c136e041b9c22

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to