From 9192af8d223bb1ae5263edf11cbc0e62aa8e040c2a633efdd4ced78c1c194ca7 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 22 May 2015 15:49:10 +0000 Subject: [PATCH 1/4] 5.3.1 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=74 --- ...rminate-animation-for-suspended-jobs.patch | 64 --------- ...place-apos-with-as-apos-is-not-suppo.patch | 34 ----- ...tch-dialog-borders-with-addwidgets-s.patch | 28 ---- ...-Manually-keep-track-of-jobs-sources.patch | 135 ------------------ 0006-Fix-running-applet-calculation.patch | 26 ---- ...art-Timer-when-the-dialog-is-visible.patch | 40 ------ 0009-check-for-model-existence.patch | 30 ---- ...owermanagementEngine-populateApplica.patch | 30 ---- ...ways-check-first-if-the-dispatch-tim.patch | 81 ----------- ...ear-notification-from-show-queue-if-.patch | 47 ------ plasma-workspace-5.3.0.tar.xz | 3 - plasma-workspace-5.3.1.tar.xz | 3 + plasma5-workspace.changes | 19 +++ plasma5-workspace.spec | 24 +--- 14 files changed, 24 insertions(+), 540 deletions(-) delete mode 100644 0001-Disable-indeterminate-animation-for-suspended-jobs.patch delete mode 100644 0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch delete mode 100644 0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch delete mode 100644 0005-Manually-keep-track-of-jobs-sources.patch delete mode 100644 0006-Fix-running-applet-calculation.patch delete mode 100644 0008-Only-restart-Timer-when-the-dialog-is-visible.patch delete mode 100644 0009-check-for-model-existence.patch delete mode 100644 0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch delete mode 100644 0011-notifications-Always-check-first-if-the-dispatch-tim.patch delete mode 100644 0012-notifications-Clear-notification-from-show-queue-if-.patch delete mode 100644 plasma-workspace-5.3.0.tar.xz create mode 100644 plasma-workspace-5.3.1.tar.xz diff --git a/0001-Disable-indeterminate-animation-for-suspended-jobs.patch b/0001-Disable-indeterminate-animation-for-suspended-jobs.patch deleted file mode 100644 index e265bb5..0000000 --- a/0001-Disable-indeterminate-animation-for-suspended-jobs.patch +++ /dev/null @@ -1,64 +0,0 @@ -From a3b79c165ae69abb9b390a5c657fc1db483a1e0d Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Sun, 26 Apr 2015 19:06:21 +0200 -Subject: [PATCH 01/12] Disable indeterminate animation for suspended jobs - -Since they're not doing anything there's no need for an animation. Also simplify -jobstate handling, we're only ever interested in the suspended state. ---- - applets/notifications/package/contents/ui/JobDelegate.qml | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -diff --git a/applets/notifications/package/contents/ui/JobDelegate.qml b/applets/notifications/package/contents/ui/JobDelegate.qml -index f3f091d7a98b940c6bbc76aa881efee8371fa05e..67418893a98997a3c90f17ba5de843f8eff48d69 100644 ---- a/applets/notifications/package/contents/ui/JobDelegate.qml -+++ b/applets/notifications/package/contents/ui/JobDelegate.qml -@@ -34,11 +34,12 @@ Column { - readonly property int layoutSpacing: units.largeSpacing / 4 - readonly property int animationDuration: units.shortDuration * 2 - -+ readonly property string infoMessage: getData(jobsSource.data, "infoMessage", '') - readonly property string labelName0: getData(jobsSource.data, "labelName0", '') - readonly property string labelName1: getData(jobsSource.data, "labelName1", '') - readonly property string label0: getData(jobsSource.data, "label0", '') - readonly property string label1: getData(jobsSource.data, "label1", '') -- readonly property string jobstate: getData(jobsSource.data, "state", '') -+ readonly property bool isSuspended: getData(jobsSource.data, "state", '') === "suspended" - - function getData(data, name, defaultValue) { - return data[modelData] ? (data[modelData][name] ? data[modelData][name] : defaultValue) : defaultValue; -@@ -49,7 +50,7 @@ Column { - width: parent.width - opacity: 0.6 - level: 3 -- text: getData(jobsSource.data, "infoMessage", '') -+ text: infoMessage - } - - RowLayout { -@@ -149,17 +150,19 @@ Column { - maximumValue: 100 - //percentage doesn't always exist, so doesn't get in the model - value: getData(jobsSource.data, "percentage", 0) -- indeterminate: plasmoid.expanded && jobsSource.data[modelData] && typeof jobsSource.data[modelData]["percentage"] === "undefined" -+ indeterminate: plasmoid.expanded && jobsSource.data[modelData] -+ && typeof jobsSource.data[modelData]["percentage"] === "undefined" -+ && !jobItem.isSuspended - } - - PlasmaComponents.ToolButton { - id: pauseButton -- iconSource: jobItem.jobstate == "suspended" ? "media-playback-start" : "media-playback-pause" -+ iconSource: jobItem.isSuspended ? "media-playback-start" : "media-playback-pause" - visible: getData(jobsSource.data, "suspendable", 0) - - onClicked: { - var operationName = "suspend" -- if (jobItem.jobstate == "suspended") { -+ if (jobItem.isSuspended) { - operationName = "resume" - } - var service = jobsSource.serviceForSource(modelData) --- -2.3.5 - diff --git a/0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch b/0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch deleted file mode 100644 index a3cbaeb..0000000 --- a/0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d95c4b850b03776c95efd04baad8c92864c42a3d Mon Sep 17 00:00:00 2001 -From: Martin Klapetek -Date: Mon, 27 Apr 2015 14:33:42 +0200 -Subject: [PATCH 03/12] [notifications] Replace ' with ' as ' is not - supported by StyledText - -QtQuick's Text with StyledFormat supports only html3.2 subset of stuff. -' is html4 and as such gets removed altogther, which is obviously -unwanted. - -Reviewed-by: Kai Uwe Broulik -BUG: 346710 -FIXED-IN: 5.3.1 ---- - dataengines/notifications/notificationsengine.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/dataengines/notifications/notificationsengine.cpp b/dataengines/notifications/notificationsengine.cpp -index 6a417294c65c71960f1c1ba022e8c2976a0b9464..37a11dd1f70bc7692112be1d51918a39682969d9 100644 ---- a/dataengines/notifications/notificationsengine.cpp -+++ b/dataengines/notifications/notificationsengine.cpp -@@ -232,6 +232,9 @@ uint NotificationsEngine::Notify(const QString &app_name, uint replaces_id, - // text where it finds a stray ampersand. - // Only &{apos, quot, gt, lt, amp}; as well as { character references will be allowed - bodyFinal.replace(QRegularExpression("&(?!(?:apos|quot|[gl]t|amp);|#)"), QLatin1String("&")); -+ // The Text.StyledText format handles only html3.2 stuff and ' is html4 stuff -+ // so we need to replace it here otherwise it will not render at all. -+ bodyFinal.replace(QLatin1String("'"), QChar('\'')); - - Plasma::DataEngine::Data notificationData; - notificationData.insert("id", QString::number(id)); --- -2.3.5 - diff --git a/0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch b/0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch deleted file mode 100644 index e4afe84..0000000 --- a/0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f0d0518a70417b35124c0089325b32a6e6bf8f5e Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Sun, 26 Apr 2015 13:37:29 +0200 -Subject: [PATCH 04/12] Match window switch dialog borders with - addwidgets/switch activity - -BUG: 345614 -REVIEW: 123506 ---- - lookandfeel/contents/windowswitcher/WindowSwitcher.qml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lookandfeel/contents/windowswitcher/WindowSwitcher.qml b/lookandfeel/contents/windowswitcher/WindowSwitcher.qml -index e4a46366c2a4e157860f55d2cb0e3781a239cb66..63799e12ae439e0a3ffd1d51b304fea0bf918f4b 100644 ---- a/lookandfeel/contents/windowswitcher/WindowSwitcher.qml -+++ b/lookandfeel/contents/windowswitcher/WindowSwitcher.qml -@@ -41,7 +41,7 @@ KWin.Switcher { - - PlasmaCore.Dialog { - id: dialog -- location: PlasmaCore.Types.Floating -+ location: PlasmaCore.Types.LeftEdge - visible: tabBox.visible - flags: Qt.X11BypassWindowManagerHint - x: screenGeometry.x --- -2.3.5 - diff --git a/0005-Manually-keep-track-of-jobs-sources.patch b/0005-Manually-keep-track-of-jobs-sources.patch deleted file mode 100644 index 2669649..0000000 --- a/0005-Manually-keep-track-of-jobs-sources.patch +++ /dev/null @@ -1,135 +0,0 @@ -From bc5c47537f3bbb706b3fe7af66508f5ef2fadc6e Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Mon, 27 Apr 2015 20:09:14 +0200 -Subject: [PATCH 05/12] Manually keep track of jobs sources - -DataSources source is a QStringList property which means changes within cannot be tracked -causing all the job delegates to be destroyed and re-created when sourcesChanged is emitted. -This is pretty wasteful and also causes the delegates to lose their state (eg. details expanded) - -REVIEW: 123502 -BUG: 346673 -FIXED-IN: 5.3.1 ---- - .../package/contents/ui/JobDelegate.qml | 11 +++++---- - applets/notifications/package/contents/ui/Jobs.qml | 27 ++++++++++++++-------- - 2 files changed, 24 insertions(+), 14 deletions(-) - -diff --git a/applets/notifications/package/contents/ui/JobDelegate.qml b/applets/notifications/package/contents/ui/JobDelegate.qml -index 67418893a98997a3c90f17ba5de843f8eff48d69..4717d49a8b3c1719d84fe7577b9b0b2d72f75873 100644 ---- a/applets/notifications/package/contents/ui/JobDelegate.qml -+++ b/applets/notifications/package/contents/ui/JobDelegate.qml -@@ -42,7 +42,8 @@ Column { - readonly property bool isSuspended: getData(jobsSource.data, "state", '') === "suspended" - - function getData(data, name, defaultValue) { -- return data[modelData] ? (data[modelData][name] ? data[modelData][name] : defaultValue) : defaultValue; -+ var source = model.name -+ return data[source] ? (data[source][name] ? data[source][name] : defaultValue) : defaultValue; - } - - PlasmaExtras.Heading { -@@ -150,8 +151,8 @@ Column { - maximumValue: 100 - //percentage doesn't always exist, so doesn't get in the model - value: getData(jobsSource.data, "percentage", 0) -- indeterminate: plasmoid.expanded && jobsSource.data[modelData] -- && typeof jobsSource.data[modelData]["percentage"] === "undefined" -+ indeterminate: plasmoid.expanded && jobsSource.data[model.name] -+ && typeof jobsSource.data[model.name]["percentage"] === "undefined" - && !jobItem.isSuspended - } - -@@ -165,7 +166,7 @@ Column { - if (jobItem.isSuspended) { - operationName = "resume" - } -- var service = jobsSource.serviceForSource(modelData) -+ var service = jobsSource.serviceForSource(model.name) - var operation = service.operationDescription(operationName) - service.startOperationCall(operation) - } -@@ -177,7 +178,7 @@ Column { - visible: getData(jobsSource.data, "killable", 0) - - onClicked: { -- var service = jobsSource.serviceForSource(modelData) -+ var service = jobsSource.serviceForSource(model.name) - var operation = service.operationDescription("stop") - service.startOperationCall(operation) - } -diff --git a/applets/notifications/package/contents/ui/Jobs.qml b/applets/notifications/package/contents/ui/Jobs.qml -index 6ecf3669147d5dcc4ff9d4a94db7cc47408c3495..3307d38b9a1ea54b075b61f023b083eae08428ac 100644 ---- a/applets/notifications/package/contents/ui/Jobs.qml -+++ b/applets/notifications/package/contents/ui/Jobs.qml -@@ -28,21 +28,34 @@ Column { - id: jobsRoot - width: parent.width - -- property alias count: jobsRepeater.count -+ property alias count: jobs.count -+ -+ ListModel { -+ id: jobs -+ } - - PlasmaCore.DataSource { - id: jobsSource - -- property variant runningJobs: ({}) -+ property var runningJobs: ({}) - - engine: "applicationjobs" - interval: 0 - - onSourceAdded: { - connectSource(source) -+ jobs.append({name: source}) - } - - onSourceRemoved: { -+ // remove source from jobs model -+ for (var i = 0, len = jobs.count; i < len; ++i) { -+ if (jobs.get(i).name === source) { -+ jobs.remove(i) -+ break -+ } -+ } -+ - if (!notifications) { - return - } -@@ -84,9 +97,7 @@ Column { - } - - onNewData: { -- var jobs = runningJobs -- jobs[sourceName] = data -- runningJobs = jobs -+ runningJobs[sourceName] = data - } - - onDataChanged: { -@@ -107,7 +118,7 @@ Column { - } - - Item { -- visible: jobsRepeater.count > 3 -+ visible: jobs.count > 3 - - PlasmaComponents.ProgressBar { - anchors { -@@ -123,9 +134,7 @@ Column { - } - - Repeater { -- id: jobsRepeater -- -- model: jobsSource.sources -+ model: jobs - delegate: JobDelegate {} - } - } --- -2.3.5 - diff --git a/0006-Fix-running-applet-calculation.patch b/0006-Fix-running-applet-calculation.patch deleted file mode 100644 index 77a1172..0000000 --- a/0006-Fix-running-applet-calculation.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2b7d3c4bc5b126111fec6b3ff3046b16541329a6 Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Mon, 27 Apr 2015 23:23:48 +0200 -Subject: [PATCH 06/12] Fix running applet calculation - -We get an int rather than a bool :) ---- - components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp b/components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp -index 376dd4c0d35082197c409aa5f041e871ad79ac79..99e9add0fd06b415e23c96ce8773ca8b639cd195 100644 ---- a/components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp -+++ b/components/shellprivate/widgetexplorer/plasmaappletitemmodel.cpp -@@ -277,7 +277,7 @@ void PlasmaAppletItemModel::setRunningApplets(const QHash &apps) - PlasmaAppletItem *p = dynamic_cast(i); - - if (p) { -- const bool running = apps.value(p->pluginName()); -+ const int running = apps.value(p->pluginName()); - p->setRunning(running); - } - } --- -2.3.5 - diff --git a/0008-Only-restart-Timer-when-the-dialog-is-visible.patch b/0008-Only-restart-Timer-when-the-dialog-is-visible.patch deleted file mode 100644 index 6696120..0000000 --- a/0008-Only-restart-Timer-when-the-dialog-is-visible.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 710837e3f82e1dc9e3a12f1dcb285c831ae5f74b Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Tue, 28 Apr 2015 20:46:14 +0200 -Subject: [PATCH 08/12] Only restart Timer when the dialog is visible - -Otherwise the Timer might fire when there are no notification properties -causing warnings. - -Reviewed-by: mklapetek ---- - applets/notifications/package/contents/ui/NotificationPopup.qml | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/applets/notifications/package/contents/ui/NotificationPopup.qml b/applets/notifications/package/contents/ui/NotificationPopup.qml -index 01ac2a1458c5298bf03b2f322352ce3fb710b5ce..415a125e532ba3da6414ad40ebecfb290c075b3a 100644 ---- a/applets/notifications/package/contents/ui/NotificationPopup.qml -+++ b/applets/notifications/package/contents/ui/NotificationPopup.qml -@@ -42,7 +42,9 @@ PlasmaCore.Dialog { - } - - onYChanged: { -- notificationTimer.restart(); -+ if (visible) { -+ notificationTimer.restart(); -+ } - } - - function populatePopup(notification) { -@@ -108,7 +110,7 @@ PlasmaCore.Dialog { - } - - textItem: PlasmaComponents.Label { -- wrapMode: Text.WordWrap -+ wrapMode: Text.WrapAtWordBoundaryOrAnywhere - elide: Text.ElideRight - verticalAlignment: Text.AlignTop - onLinkActivated: Qt.openUrlExternally(link) --- -2.3.5 - diff --git a/0009-check-for-model-existence.patch b/0009-check-for-model-existence.patch deleted file mode 100644 index 710f6ae..0000000 --- a/0009-check-for-model-existence.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a234c0923767649cc6545866a563ffc4dba58de2 Mon Sep 17 00:00:00 2001 -From: Marco Martin -Date: Wed, 29 Apr 2015 09:28:11 +0200 -Subject: [PATCH 09/12] check for model existence - -BUG:346870 ---- - wallpapers/image/image.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/wallpapers/image/image.cpp b/wallpapers/image/image.cpp -index a3b9c1028947dbb69c6e22e1584137912525ae8f..f5920bf9bfa1d4746d634a48163064a056867433 100644 ---- a/wallpapers/image/image.cpp -+++ b/wallpapers/image/image.cpp -@@ -799,6 +799,12 @@ void Image::removeWallpaper(QString name) - - void Image::commitDeletion() - { -+ //This is invokable from qml, so at any moment -+ //we can't be sure the model exists -+ if (!m_model) { -+ return; -+ } -+ - for (const QString wallpaperCandidate : m_model->wallpapersAwaitingDeletion()) { - removeWallpaper(wallpaperCandidate); - } --- -2.3.5 - diff --git a/0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch b/0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch deleted file mode 100644 index e11cfd1..0000000 --- a/0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 08cbba07eb8927ce3a0f864eda8dfe1f8f1a6e44 Mon Sep 17 00:00:00 2001 -From: Emmanuel Pescosta -Date: Wed, 29 Apr 2015 12:28:50 +0200 -Subject: [PATCH 10/12] Fix a crash in - PowermanagementEngine::populateApplicationData when the given name is empty. - -Use QString::section instead of QString::split + QList::last (which requires -a non empty list) to prevent the crash. - -REVIEW: 123555 ---- - dataengines/powermanagement/powermanagementengine.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dataengines/powermanagement/powermanagementengine.cpp b/dataengines/powermanagement/powermanagementengine.cpp -index 2fbf23fb9cc1df8ae45d2cb68f7145642996c149..ca8d77d3537f12d45526c1aed55b44b6e29394bc 100644 ---- a/dataengines/powermanagement/powermanagementengine.cpp -+++ b/dataengines/powermanagement/powermanagementengine.cpp -@@ -647,7 +647,7 @@ void PowermanagementEngine::populateApplicationData(const QString &name, QString - m_applicationInfo.insert(name, qMakePair(*prettyName, *icon)); - } else { - *prettyName = name; -- *icon = name.split(QLatin1Char('/'), QString::SkipEmptyParts).last().toLower(); -+ *icon = name.section(QLatin1Char('/'), -1).toLower(); - } - } - } --- -2.3.5 - diff --git a/0011-notifications-Always-check-first-if-the-dispatch-tim.patch b/0011-notifications-Always-check-first-if-the-dispatch-tim.patch deleted file mode 100644 index f7e8066..0000000 --- a/0011-notifications-Always-check-first-if-the-dispatch-tim.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 83ec35b632ee495df4b3c6f33f7ca33bca398a8f Mon Sep 17 00:00:00 2001 -From: Martin Klapetek -Date: Fri, 1 May 2015 14:51:37 +0200 -Subject: [PATCH 11/12] [notifications] Always check first if the dispatch - timer isn't running already - -That should prevent various mis-queueings. If the timer is running, the -queue will get processed once the timer times out. - -CCBUG: 342605 ---- - .../notifications/plugin/notificationshelper.cpp | 25 +++++++++++++++++----- - 1 file changed, 20 insertions(+), 5 deletions(-) - -diff --git a/applets/notifications/plugin/notificationshelper.cpp b/applets/notifications/plugin/notificationshelper.cpp -index 37375d01b09ed399a4f0fe01c60821bc53f7f151..b56e3933bc5ee23bb53892126c5af91caee74cc6 100644 ---- a/applets/notifications/plugin/notificationshelper.cpp -+++ b/applets/notifications/plugin/notificationshelper.cpp -@@ -164,7 +164,9 @@ void NotificationsHelper::processShow() - repositionPopups(); - QTimer::singleShot(300, popup, SLOT(show())); - -- m_dispatchTimer->start(); -+ if (!m_dispatchTimer->isActive()) { -+ m_dispatchTimer->start(); -+ } - } - - void NotificationsHelper::processHide() -@@ -204,7 +206,9 @@ void NotificationsHelper::processHide() - repositionPopups(); - } - -- m_dispatchTimer->start(); -+ if (!m_dispatchTimer->isActive()) { -+ m_dispatchTimer->start(); -+ } - } - - void NotificationsHelper::displayNotification(const QVariantMap ¬ificationData) -@@ -243,7 +247,12 @@ void NotificationsHelper::displayNotification(const QVariantMap ¬ificationDat - m_showQueue.append(notificationData); - m_mutex->unlock(); - -- processQueues(); -+ if (!m_dispatchTimer->isActive()) { -+ // If the dispatch timer is not already running, process -+ // the queues directly, that should cut the time between -+ // notification emitting the event and popup displaying -+ processQueues(); -+ } - } - - void NotificationsHelper::closePopup(const QString &sourceName) -@@ -258,7 +267,10 @@ void NotificationsHelper::closePopup(const QString &sourceName) - m_mutex->lockForWrite(); - m_hideQueue.append(popup); - m_mutex->unlock(); -- processQueues(); -+ -+ if (!m_dispatchTimer->isActive()) { -+ processQueues(); -+ } - } - } - -@@ -274,7 +286,10 @@ void NotificationsHelper::onPopupClosed() - m_mutex->lockForWrite(); - m_hideQueue << popup; - m_mutex->unlock(); -- processQueues(); -+ -+ if (!m_dispatchTimer->isActive()) { -+ processQueues(); -+ } - } - } - --- -2.3.5 - diff --git a/0012-notifications-Clear-notification-from-show-queue-if-.patch b/0012-notifications-Clear-notification-from-show-queue-if-.patch deleted file mode 100644 index 71a6d8c..0000000 --- a/0012-notifications-Clear-notification-from-show-queue-if-.patch +++ /dev/null @@ -1,47 +0,0 @@ -From af3081abe2337c691cd2d310951ffd20f21da00d Mon Sep 17 00:00:00 2001 -From: Martin Klapetek -Date: Fri, 1 May 2015 14:54:47 +0200 -Subject: [PATCH 12/12] [notifications] Clear notification from show queue if - it's closed before it's shown - -It can happen that a notification is placed in the show queue and then -it's closed (eg. programatically) before it was even shown. In this case -the notification must be cleared from the show queue otherwise it will -get displayed and hidden but the popup is never freed for reuse, -resulting in notificaions starting at higher position from the panel. - -BUG: 342605 ---- - applets/notifications/plugin/notificationshelper.cpp | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/applets/notifications/plugin/notificationshelper.cpp b/applets/notifications/plugin/notificationshelper.cpp -index b56e3933bc5ee23bb53892126c5af91caee74cc6..e2880eb235d99f2a9930d648d3ccc5a296c4c354 100644 ---- a/applets/notifications/plugin/notificationshelper.cpp -+++ b/applets/notifications/plugin/notificationshelper.cpp -@@ -263,6 +263,22 @@ void NotificationsHelper::closePopup(const QString &sourceName) - bool shouldQueue = popup && !m_hideQueue.contains(popup); - m_mutex->unlock(); - -+ // Make sure the notification that was closed (programatically) -+ // is not in the show queue. This is important otherwise that -+ // notification will be shown and then never closed (because -+ // the close event arrives here, before it's even shown) -+ QMutableListIterator i(m_showQueue); -+ while (i.hasNext()) { -+ if (i.next().value("source") == sourceName) { -+ qDebug() << "########|" << " (locking mutex for write)"; -+ m_mutex->lockForWrite(); -+ qDebug() << "########|" << "Removing old data" << i.value().value("summary").toString(); -+ i.remove(); -+ m_mutex->unlock(); -+ qDebug() << "########|" << " (unlocking mutex)"; -+ } -+ } -+ - if (shouldQueue) { - m_mutex->lockForWrite(); - m_hideQueue.append(popup); --- -2.3.5 - diff --git a/plasma-workspace-5.3.0.tar.xz b/plasma-workspace-5.3.0.tar.xz deleted file mode 100644 index 3c1a924..0000000 --- a/plasma-workspace-5.3.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95f5b2319ca0c63f883e5350760d234eb2ee1a57f21e612f9ac35b0ded467316 -size 6843340 diff --git a/plasma-workspace-5.3.1.tar.xz b/plasma-workspace-5.3.1.tar.xz new file mode 100644 index 0000000..cb13a5a --- /dev/null +++ b/plasma-workspace-5.3.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21436b4577bbe9d5eb4e1d78b2acd4c6b3d6a026b645339e2b0154c861464fb2 +size 6851512 diff --git a/plasma5-workspace.changes b/plasma5-workspace.changes index c1f0592..f1c0b09 100644 --- a/plasma5-workspace.changes +++ b/plasma5-workspace.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Fri May 22 15:30:20 UTC 2015 - hrvoje.senjan@gmail.com + +- Update to 5.3.1: + * Bugfix release + * For more details please see: + https://www.kde.org/announcements/plasma-5.3.1.php +- Drop patches merged upstream: + 0001-Disable-indeterminate-animation-for-suspended-jobs.patch + 0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch + 0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch + 0005-Manually-keep-track-of-jobs-sources.patch + 0006-Fix-running-applet-calculation.patch + 0008-Only-restart-Timer-when-the-dialog-is-visible.patch + 0009-check-for-model-existence.patch + 0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch + 0011-notifications-Always-check-first-if-the-dispatch-tim.patch + 0012-notifications-Clear-notification-from-show-queue-if-.patch + ------------------------------------------------------------------- Sun May 17 12:00:58 UTC 2015 - hrvoje.senjan@gmail.com diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index d9f3298..afbfb9c 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -18,7 +18,7 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.3.0 +Version: 5.3.1 Release: 0 Summary: The KDE Plasma Workspace Components License: GPL-2.0+ @@ -34,16 +34,6 @@ Patch1: create_kdehome.patch # PATCH-FIX_OPENSUSE 0003-Remove-export-of-QT_PLUGIN_PATH.patch -- we install plugins to directory known to Qt5, so export just pollutes both Qt4 and Qt5 plugins Patch2: 0003-Remove-export-of-QT_PLUGIN_PATH.patch # PATCHES 100-200 and above are from upstream 5.3 branch -Patch100: 0001-Disable-indeterminate-animation-for-suspended-jobs.patch -Patch101: 0003-notifications-Replace-apos-with-as-apos-is-not-suppo.patch -Patch102: 0004-Match-window-switch-dialog-borders-with-addwidgets-s.patch -Patch103: 0005-Manually-keep-track-of-jobs-sources.patch -Patch104: 0006-Fix-running-applet-calculation.patch -Patch105: 0008-Only-restart-Timer-when-the-dialog-is-visible.patch -Patch106: 0009-check-for-model-existence.patch -Patch107: 0010-Fix-a-crash-in-PowermanagementEngine-populateApplica.patch -Patch108: 0011-notifications-Always-check-first-if-the-dispatch-tim.patch -Patch109: 0012-notifications-Clear-notification-from-show-queue-if-.patch # PATCHES 201-300 and above are from upstream master/5.4 branch BuildRequires: alsa-devel BuildRequires: baloo5-devel >= %{version} @@ -101,7 +91,7 @@ BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(zlib) -Conflicts: kdebase4-workspace < 5.3.0 +Conflicts: kdebase4-workspace < 5.3.1 Requires: %{name}-branding = %{_plasma5_branding_version} Requires: %{name}-libs = %{version}-%{release} # used within startup @@ -200,16 +190,6 @@ workspace. Development files. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5 From 81cbbe8f1a9bcf6efe6b46e1be56bc3cc7176119863f3f9f2c9e19eb7660af8a Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 22 May 2015 16:03:14 +0000 Subject: [PATCH 2/4] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=75 --- plasma5-workspace.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index afbfb9c..c533d05 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -91,7 +91,7 @@ BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(zlib) -Conflicts: kdebase4-workspace < 5.3.1 +Conflicts: kdebase4-workspace < 5.3.0 Requires: %{name}-branding = %{_plasma5_branding_version} Requires: %{name}-libs = %{version}-%{release} # used within startup From a3c91ad5bb824cdbc212c0abf9dda4cee3e5c29d26983107aa8480e3bd579337 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 22 May 2015 16:41:38 +0000 Subject: [PATCH 3/4] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=76 --- plasma5-workspace.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index c533d05..6a330e8 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -306,7 +306,6 @@ workspace. Development files. %files lang %defattr(-,root,root) %{_kf5_localedir}/ -%doc %lang(de) %{_kf5_htmldir}/de/ %endif %changelog From 513f16c6d201333bb8b0f7459fde4a3966090238d24f91d003cd3ff760ee827d Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Fri, 22 May 2015 16:57:08 +0000 Subject: [PATCH 4/4] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=77 --- plasma5-workspace.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index 6a330e8..d4a671b 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -306,6 +306,7 @@ workspace. Development files. %files lang %defattr(-,root,root) %{_kf5_localedir}/ +%doc %lang(ca) %{_kf5_htmldir}/ca/ %endif %changelog