X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsystraynotificationbackend.cpp;h=d96000e19da6b814f4097d1c7de5b50ba5dc149c;hp=b0b7be6299b2247b145cac62a6867135eb6956e0;hb=4c414f8fb60a3a84e09f43ae0161677f88d318ca;hpb=efee441a243efb88929e1e275d71ee27991bf074 diff --git a/src/qtui/systraynotificationbackend.cpp b/src/qtui/systraynotificationbackend.cpp index b0b7be62..d96000e1 100644 --- a/src/qtui/systraynotificationbackend.cpp +++ b/src/qtui/systraynotificationbackend.cpp @@ -92,15 +92,16 @@ void SystrayNotificationBackend::close(uint notificationId) void SystrayNotificationBackend::notificationActivated(uint notificationId) { if (!_blockActivation) { - if (_notifications.count()) { - if (QtUi::mainWindow()->systemTray()->mode() == SystemTray::Legacy) - _blockActivation = true; // prevent double activation because both tray icon and bubble might send a signal - if (!notificationId) - notificationId = _notifications.count() ? _notifications.last().notificationId : 0; - emit activated(notificationId); + QList::iterator i = _notifications.begin(); + while (i != _notifications.end()) { + if (i->notificationId == notificationId) { + if (QtUi::mainWindow()->systemTray()->mode() == SystemTray::Legacy) + _blockActivation = true; // prevent double activation because both tray icon and bubble might send a signal + emit activated(notificationId); + break; + } + ++i; } - else - GraphicalUi::toggleMainWidget(); } } @@ -108,7 +109,10 @@ void SystrayNotificationBackend::notificationActivated(uint notificationId) void SystrayNotificationBackend::notificationActivated(SystemTray::ActivationReason reason) { if (reason == SystemTray::Trigger) { - notificationActivated(0); + if (_notifications.count()) + notificationActivated(_notifications.last().notificationId); + else + GraphicalUi::toggleMainWidget(); } }