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

Reply via email to