summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Uwe Broulik <kde@privat.broulik.de>2017-04-18 21:46:16 (GMT)
committerKai Uwe Broulik <kde@privat.broulik.de>2017-04-18 21:46:16 (GMT)
commit58206408a35a0900b5678231b7aaf490b2a3ec10 (patch)
treeeaa646f30a47e0032fd7922b6f4b1ec0f1afd917
parentef12ad389ee48208e7a7c8520dc3a05864d2fe87 (diff)
When deleting the panel the notifications applet is in, the containment is being destroyed but the corona
is still there and rightfully emits availableScreenRectChanged. This will cause us to crash when we try to access the no-longer existing containment. CCBUG: 378508 Differential Revision: https://phabricator.kde.org/D5321
-rw-r--r--applets/notifications/lib/notificationsapplet.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/applets/notifications/lib/notificationsapplet.cpp b/applets/notifications/lib/notificationsapplet.cpp
index 7b31154..4474c8c 100644
--- a/applets/notifications/lib/notificationsapplet.cpp
+++ b/applets/notifications/lib/notificationsapplet.cpp
@@ -61,6 +61,12 @@ void NotificationsApplet::init()
void NotificationsApplet::onScreenChanges()
{
+ // when removing the panel the applet is in, the containment is being destroyed but its corona is still
+ // there, rightfully emitting availableScreenRectChanged and then we blow up if we try to access it.
+ if (!containment()) {
+ return;
+ }
+
m_availableScreenRect = containment()->corona()->availableScreenRect(containment()->screen());
Q_EMIT availableScreenRectChanged(m_availableScreenRect);
}