[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