[arch-commits] Commit in kdebase-workspace/trunk (2 files)
Andrea Scarpino
andrea at archlinux.org
Wed Feb 2 23:04:45 UTC 2011
Date: Wednesday, February 2, 2011 @ 18:04:45
Author: andrea
Revision: 108772
upgpkg: kdebase-workspace 4.6.0-1
Rebuilt against cln 1.3.1; Patch to fix a plasma crash on exit (FS#22712)
Added:
kdebase-workspace/trunk/fix-plasma-crash-on-exit.patch
Modified:
kdebase-workspace/trunk/PKGBUILD
--------------------------------+
PKGBUILD | 7 +-
fix-plasma-crash-on-exit.patch | 127 +++++++++++++++++++++++++++++++++++++++
2 files changed, 132 insertions(+), 2 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2011-02-02 23:03:59 UTC (rev 108771)
+++ PKGBUILD 2011-02-02 23:04:45 UTC (rev 108772)
@@ -28,7 +28,8 @@
'kdm-zsh-profile.patch' 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
'fixpath.patch' 'terminate-server.patch'
'set-horos-theme.patch'
- 'fix-MALLOC_CHECK.patch')
+ 'fix-MALLOC_CHECK.patch'
+ 'fix-plasma-crash-on-exit.patch')
sha1sums=('c192f712d16617e625acc84fcd9e0546df887a70'
'8c2bdefb23a03b753b78d16944d03fa3939d2d99'
'5db3a245201bd4a50e65aa2ef583cf5490e4f646'
@@ -38,13 +39,15 @@
'd7b5883f7e65c6839b1f65f94d58026673dd0226'
'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
'd1f74ba2c7e2580d32b16ab88b0e6e804951e663'
- 'd8d6ac7f1b25a30fdd0d6a182e2ac6c6f2a28cd7')
+ 'd8d6ac7f1b25a30fdd0d6a182e2ac6c6f2a28cd7'
+ '7b7789c3276b67d1c4c462c2d2347db59650aefb')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
# Already fixed upstream
patch -Np0 -i ${srcdir}/set-horos-theme.patch
patch -Np0 -i ${srcdir}/fix-MALLOC_CHECK.patch
+ patch -Np1 -i ${srcdir}/fix-plasma-crash-on-exit.patch
patch -p0 -i ${srcdir}/kdm-zsh-profile.patch
patch -p0 -i ${srcdir}/fixpath.patch
Added: fix-plasma-crash-on-exit.patch
===================================================================
--- fix-plasma-crash-on-exit.patch (rev 0)
+++ fix-plasma-crash-on-exit.patch 2011-02-02 23:04:45 UTC (rev 108772)
@@ -0,0 +1,127 @@
+commit 92f71adb8bb6e46d4a3187ab8824c859312e9136
+Author: Aaron Seigo <aseigo at kde.org>
+Date: Tue Feb 1 12:54:44 2011 -0800
+
+ try to avoid doing any work when we are deleting
+
+diff --git a/plasma/generic/applets/notifications/ui/notificationgroup.cpp b/plasma/generic/applets/notifications/ui/notificationgroup.cpp
+index 1f7c0b8..6bbf43c 100644
+--- a/plasma/generic/applets/notifications/ui/notificationgroup.cpp
++++ b/plasma/generic/applets/notifications/ui/notificationgroup.cpp
+@@ -66,6 +66,8 @@ NotificationGroup::NotificationGroup(Extender *parent, uint groupId)
+
+ NotificationGroup::~NotificationGroup()
+ {
++ m_extenderItemsForNotification.clear();
++ m_notificationForExtenderItems.clear();
+ qDeleteAll(m_notifications);
+ }
+
+@@ -137,6 +139,11 @@ void NotificationGroup::addNotification(Notification *notification)
+
+ void NotificationGroup::extenderItemDestroyed(Plasma::ExtenderItem *object)
+ {
++ if (m_extenderItemsForNotification.isEmpty()) {
++ // either we aren't tracking this notification or else we're being deleted
++ return;
++ }
++
+ Notification *n = m_notificationForExtenderItems.value(object);
+
+ if (n) {
+@@ -148,10 +155,16 @@ void NotificationGroup::extenderItemDestroyed(Plasma::ExtenderItem *object)
+
+ void NotificationGroup::removeNotification(Notification *notification)
+ {
++ if (m_extenderItemsForNotification.isEmpty()) {
++ // either we aren't tracking this notification or else we're being deleted
++ return;
++ }
++
+ Plasma::ExtenderItem *item = m_extenderItemsForNotification.value(notification);
+ if (item) {
+ m_notificationForExtenderItems.remove(item);
+ }
++
+ m_extenderItemsForNotification.remove(notification);
+ m_notifications.removeAll(notification);
+ QString applicationName = m_appForNotification.value(notification);
+diff --git a/plasma/generic/applets/notifications/ui/notifications.cpp b/plasma/generic/applets/notifications/ui/notifications.cpp
+index 9b1a7c0..c7aa6dd 100644
+--- a/plasma/generic/applets/notifications/ui/notifications.cpp
++++ b/plasma/generic/applets/notifications/ui/notifications.cpp
+@@ -106,6 +106,9 @@ Notifications::~Notifications()
+ {
+ // stop listening to the manager
+ disconnect(m_manager, 0, this, 0);
++ if (m_notificationStackDialog) {
++ disconnect(m_notificationStackDialog, 0, this, 0);
++ }
+
+ foreach (Notification *notification, m_manager->notifications()) {
+ // we don't want a destroyed managed after the destruction of manager
+@@ -342,10 +345,10 @@ void Notifications::initExtenderItem(Plasma::ExtenderItem *extenderItem)
+ return;
+ }
+
+- if (extenderItem->config().readEntry("type", "") == "job") {
++ if (extenderItem->config().readEntry("type", QString()) == "job") {
+ extenderItem->setWidget(new JobWidget(0, extenderItem));
+- //unknown type, this should never happen
+ } else {
++ //unknown type, this should never happen
+ extenderItem->destroy();
+ }
+
+commit 1fc6c46a49695ec6ad6cd80a8459c5c083de8e06
+Author: Aaron Seigo <aseigo at kde.org>
+Date: Tue Feb 1 12:54:25 2011 -0800
+
+ make them all uniqueconnections
+
+diff --git a/plasma/generic/applets/notifications/ui/notificationstack.cpp b/plasma/generic/applets/notifications/ui/notificationstack.cpp
+index 2f68961..3b53559 100644
+--- a/plasma/generic/applets/notifications/ui/notificationstack.cpp
++++ b/plasma/generic/applets/notifications/ui/notificationstack.cpp
+@@ -54,11 +54,9 @@ NotificationStack::~NotificationStack()
+ void NotificationStack::addNotification(Notification *notification)
+ {
+ m_canDismissTimer->start(1000);
+- connect(notification, SIGNAL(notificationDestroyed(Notification *)), this, SLOT(removeNotification(Notification *)));
+- connect(notification, SIGNAL(expired(Notification *)), this, SLOT(delayedRemoveNotification(Notification *)));
+-
+- disconnect(notification, SIGNAL(changed(Notification *)), this, SLOT(notificationChanged(Notification *)));
+- connect(notification, SIGNAL(changed(Notification *)), this, SLOT(notificationChanged(Notification *)));
++ connect(notification, SIGNAL(notificationDestroyed(Notification *)), this, SLOT(removeNotification(Notification *)), Qt::UniqueConnection);
++ connect(notification, SIGNAL(expired(Notification *)), this, SLOT(delayedRemoveNotification(Notification *)), Qt::UniqueConnection);
++ connect(notification, SIGNAL(changed(Notification *)), this, SLOT(notificationChanged(Notification *)), Qt::UniqueConnection);
+
+ NotificationWidget *notificationWidget = new NotificationWidget(notification, this);
+ notificationWidget->installEventFilter(this);
+commit f0f66f023e6f2896bcc2ea67d7922fc0745ff7b5
+Author: Aaron Seigo <aseigo at kde.org>
+Date: Tue Feb 1 12:54:10 2011 -0800
+
+ simplification
+
+diff --git a/plasma/generic/applets/notifications/ui/notificationwidget.cpp b/plasma/generic/applets/notifications/ui/notificationwidget.cpp
+index 7764ede..3f87cfe 100644
+--- a/plasma/generic/applets/notifications/ui/notificationwidget.cpp
++++ b/plasma/generic/applets/notifications/ui/notificationwidget.cpp
+@@ -43,7 +43,6 @@
+
+ #include <Plasma/Animation>
+ #include <Plasma/Animator>
+-#include <Plasma/Extender>
+ #include <Plasma/Frame>
+ #include <Plasma/IconWidget>
+ #include <Plasma/Label>
+@@ -170,7 +169,7 @@ NotificationWidget::NotificationWidget(Notification *notification, QGraphicsWidg
+ d->notification = notification;
+
+ connect(d->signalMapper, SIGNAL(mapped(const QString &)),
+- d->notification.data(), SLOT(triggerAction(const QString &)));
++ notification, SLOT(triggerAction(const QString &)));
+ connect(notification, SIGNAL(changed()),
+ this, SLOT(updateNotification()));
+ connect(notification, SIGNAL(destroyed()),
More information about the arch-commits
mailing list