/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
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<Notification>::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();
}
}
void SystrayNotificationBackend::notificationActivated(SystemTray::ActivationReason reason)
{
if (reason == SystemTray::Trigger) {
- notificationActivated(0);
+ if (_notifications.count())
+ notificationActivated(_notifications.last().notificationId);
+ else
+ GraphicalUi::toggleMainWidget();
}
}