From 4a809d57f7814e2e5f76d8453ba5d9518ca5420e Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Mon, 1 Jan 2024 17:50:52 +0100 Subject: [PATCH] Fix crash when accepting/declining already accepted/declined invite BUG: 475502 --- src/notificationsmanager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/notificationsmanager.cpp b/src/notificationsmanager.cpp index f9032b651..19a210d86 100644 --- a/src/notificationsmanager.cpp +++ b/src/notificationsmanager.cpp @@ -235,8 +235,9 @@ void NotificationsManager::postNotification(NeoChatRoom *room, notification->sendEvent(); } -void NotificationsManager::postInviteNotification(NeoChatRoom *room, const QString &title, const QString &sender, const QImage &icon) +void NotificationsManager::postInviteNotification(NeoChatRoom *rawRoom, const QString &title, const QString &sender, const QImage &icon) { + QPointer room(rawRoom); QPixmap img; img.convertFromImage(icon); KNotification *notification = new KNotification(QStringLiteral("invite")); @@ -246,6 +247,9 @@ void NotificationsManager::postInviteNotification(NeoChatRoom *room, const QStri notification->setFlags(KNotification::Persistent); auto defaultAction = notification->addDefaultAction(i18n("Open this invitation in NeoChat")); connect(defaultAction, &KNotificationAction::activated, this, [notification, room]() { + if (!room) { + return; + } WindowController::instance().showAndRaiseWindow(notification->xdgActivationToken()); notification->close(); RoomManager::instance().enterRoom(room);