[Differential] [Request, 25 lines] D3950: Try to fix "Pinned Chrome disappears when all Chrome windows are closed"
hein (Eike Hein)
noreply at phabricator.kde.org
Wed Jan 4 09:14:07 UTC 2017
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170104/d56a5551/attachment.html>
More information about the Plasma-devel
mailing list