Skip to content
  • Eike Hein's avatar
    Fix another regression with rearranging launchers in an activities world. · 16680da7
    Eike Hein authored
    Summary:
    The new activity-aware implementation of
    LauncherTasksModel::setLauncherList() would only accept the passed list
    when it changed any activities associations, not when the order changed.
    This would effectively turn TasksModel::move involving launcher tasks
    into a no-op.
    
    Rearranging launchers works like this:
    1. A client calls TasksModel::move one or many times. TasksModel::move
       updates TasksModel's internal sort mapping and implements it, causing
       a visible order change in any views.
    2. When it is done calling move(), the client calls
       TasksModel::syncLaunchers. TasksModel::syncLaunchers calls
       LauncherTasksModel::setLauncherList with a new list derived from
       its sort mapping, and updates its sort mapping in expectation of
       row indices changing in the launcher tasks source model.
    
    Due to the above bug, the sort mapping would be adjusted in expectation
    of changes the launcher tasks model would not actually do, appearing to
    undo the moves the next time a view is updated from source data.
    
    CCMAIL:ivan.cukic@kde.org
    
    Reviewers: #plasma, davidedmundson, mart
    
    Subscribers: plasma-devel
    
    Tags: #plasma
    
    Differential Revision: https://phabricator.kde.org/D4749
    16680da7