Merge pull request #1341 from Decodetalkers/ft_clean_notify

clean all notifications if exit on linux
cleanup-flatpak-building
DeepBlueV7.X 2 years ago committed by GitHub
commit 539db70fd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      src/ChatPage.cpp
  2. 2
      src/ChatPage.h
  3. 1
      src/main.cpp
  4. 3
      src/notifications/Manager.h
  5. 9
      src/notifications/ManagerLinux.cpp

@ -1648,3 +1648,11 @@ ChatPage::isRoomActive(const QString &room_id)
return QGuiApplication::focusWindow() && QGuiApplication::focusWindow()->isActive() &&
MainWindow::instance()->windowForRoom(room_id) == QGuiApplication::focusWindow();
}
void
ChatPage::removeAllNotifications()
{
#if defined (Q_OS_LINUX)
notificationsManager->closeAllNotifications();
#endif
}

@ -84,6 +84,8 @@ public:
return pushrules;
}
void removeAllNotifications();
public slots:
bool handleMatrixUri(QString uri);
bool handleMatrixUri(const QUrl &uri);

@ -350,6 +350,7 @@ main(int argc, char *argv[])
w.show();
QObject::connect(&app, &QApplication::aboutToQuit, &w, [&w]() {
ChatPage::instance()->removeAllNotifications();
w.saveCurrentWindowSize();
if (http::client() != nullptr) {
nhlog::net()->debug("shutting down all I/O threads & open connections");

@ -55,6 +55,9 @@ public slots:
#if defined(NHEKO_DBUS_SYS)
public:
void closeNotifications(QString roomId);
#if defined(Q_OS_LINUX)
void closeAllNotifications();
#endif
private:
QDBusInterface dbus;

@ -271,3 +271,12 @@ NotificationsManager::notificationClosed(uint id, uint reason)
Q_UNUSED(reason);
notificationIds.remove(id);
}
void
NotificationsManager::closeAllNotifications()
{
for (auto id : notificationIds.keys()) {
closeNotification(id);
notificationIds.remove(id);
}
}

Loading…
Cancel
Save