* 0001-Fix-another-regression-with-rearranging-launchers-in.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=299
60 lines
2.3 KiB
Diff
60 lines
2.3 KiB
Diff
From 6cfca1bdf34232d1722c88be22804e65d1c445da Mon Sep 17 00:00:00 2001
|
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
Date: Fri, 24 Feb 2017 16:34:20 +0100
|
|
Subject: [PATCH] Fix another regression with rearranging launchers in an
|
|
activities world.
|
|
|
|
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
|
|
|
|
Reviewed By: mart
|
|
|
|
Subscribers: broulik, fvogt, plasma-devel
|
|
|
|
Tags: #plasma
|
|
|
|
Differential Revision: https://phabricator.kde.org/D4749
|
|
---
|
|
libtaskmanager/launchertasksmodel.cpp | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/libtaskmanager/launchertasksmodel.cpp b/libtaskmanager/launchertasksmodel.cpp
|
|
index b3cba5ed..a0b3745b 100644
|
|
--- a/libtaskmanager/launchertasksmodel.cpp
|
|
+++ b/libtaskmanager/launchertasksmodel.cpp
|
|
@@ -449,7 +449,8 @@ void LauncherTasksModel::setLauncherList(const QStringList &serializedLaunchers)
|
|
}
|
|
}
|
|
|
|
- if (newActivitiesForLauncher != d->activitiesForLauncher) {
|
|
+ if (newLaunchersOrder != d->launchersOrder
|
|
+ || newActivitiesForLauncher != d->activitiesForLauncher) {
|
|
// Common case optimization: If the list changed but its size
|
|
// did not (e.g. due to reordering by a user of this model),
|
|
// just clear the caches and announce new data instead of
|
|
--
|
|
2.11.0
|
|
|