hein created this revision. hein added a reviewer: davidedmundson. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY TasksModel filters out matching launchers when a startup or window appears. When they go, dataChanged in the launcher model is triggered to pop them back in. This used to be in response to rowsAboutToBeRemoved, with a Qt::QueuedConnection to try and make sure that dataChanged is emitted after the row removal is processed (other- wise the filter would still take). While I have not been able to reproduce the bug well enough to test things, my guess is that this must be a race condition - perhaps something is spinning the event loop. This patch collects the indices in the handler for sourceModel:: rowsAboutToBeRemoved and triggers dataChanged for them in the handler for ourselves::rowsRemoved. Keeping model indices around is usually a huge red flag. This makes the (currently solid) assumption that nothing will change the launchers model inbetween the halves of this transaction. BUG:365617 REPOSITORY R120 Plasma Workspace BRANCH master REVISION DETAIL https://phabricator.kde.org/D3950 AFFECTED FILES libtaskmanager/tasksmodel.cpp EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: hein, davidedmundson Cc: plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas