|
|
|
|
@ -112,13 +112,13 @@ void NotificationsService::NotifyAsync(
|
|
|
|
|
TQ_UINT32 nId = id;
|
|
|
|
|
// if (nId != 0 && !mNotificationMap.contains(nId))
|
|
|
|
|
// tqDebug("Requested id %i is not valid", nId);
|
|
|
|
|
bool isNewWidget=false;
|
|
|
|
|
if (nId == 0 || !mNotificationMap.contains(nId)) // new notification
|
|
|
|
|
{
|
|
|
|
|
nId = ++mNotificationId;
|
|
|
|
|
isNewWidget = true;
|
|
|
|
|
|
|
|
|
|
mNotificationMap[nId] = new NotifyWidget(0, app_name.ascii(), nId);
|
|
|
|
|
mNotificationMap[nId]->setMinimumSize(200, 40);
|
|
|
|
|
|
|
|
|
|
connect(mNotificationMap[nId], TQ_SIGNAL(notificationClosed(TQ_UINT32, TQ_UINT32)),
|
|
|
|
|
this, TQ_SLOT(closeNotifyWidget(TQ_UINT32, TQ_UINT32)));
|
|
|
|
|
}
|
|
|
|
|
@ -199,24 +199,30 @@ void NotificationsService::NotifyAsync(
|
|
|
|
|
if(mNotificationMap[nId]->getUrgency() == 2)
|
|
|
|
|
timeout = 0; // critical notifications should never expire
|
|
|
|
|
mNotificationMap[nId]->setTimeout(timeout);
|
|
|
|
|
mNotificationMap[nId]->updateGeometry();
|
|
|
|
|
mNotificationMap[nId]->adjustSize();
|
|
|
|
|
mNotificationMap[nId]->raise();
|
|
|
|
|
mNotificationMap[nId]->setActiveWindow();
|
|
|
|
|
|
|
|
|
|
// make sure we display the new notification above the older one
|
|
|
|
|
// and if we reach the top of the screen we start at the bottom
|
|
|
|
|
TQDesktopWidget *d = TQApplication::desktop();
|
|
|
|
|
if (mNotificationMap.contains(nId-1) && mNotificationMap[nId-1] != 0) {
|
|
|
|
|
TQPoint pos = mNotificationMap[nId-1]->pos();
|
|
|
|
|
if(pos.y()-mNotificationMap[nId-1]->height() < 0)
|
|
|
|
|
pos.setY(d->height()-mNotificationMap[nId]->height());
|
|
|
|
|
pos.setX(d->width()-mNotificationMap[nId]->width());
|
|
|
|
|
mNotificationMap[nId]->move(pos.x(),pos.y()-mNotificationMap[nId-1]->height());
|
|
|
|
|
} else {
|
|
|
|
|
mNotificationMap[nId]->move( d->width()-mNotificationMap[nId]->width(),
|
|
|
|
|
d->height()-mNotificationMap[nId]->height());
|
|
|
|
|
if(isNewWidget) // new widget position
|
|
|
|
|
{
|
|
|
|
|
// make sure we display the new notification above the older one
|
|
|
|
|
// and if we reach the top of the screen we start at the bottom
|
|
|
|
|
TQDesktopWidget *d = TQApplication::desktop();
|
|
|
|
|
if (mNotificationMap.contains(nId-1) && mNotificationMap[nId-1] != 0) {
|
|
|
|
|
TQPoint pos = mNotificationMap[nId-1]->pos();
|
|
|
|
|
if(pos.y()-mNotificationMap[nId]->height() < 0)
|
|
|
|
|
pos.setY(d->height()-mNotificationMap[nId]->height());
|
|
|
|
|
else
|
|
|
|
|
pos.setY(pos.y()-mNotificationMap[nId]->height());
|
|
|
|
|
pos.setX(d->width()-mNotificationMap[nId]->width());
|
|
|
|
|
mNotificationMap[nId]->move(pos);
|
|
|
|
|
} else {
|
|
|
|
|
mNotificationMap[nId]->move( d->width()-mNotificationMap[nId]->width(),
|
|
|
|
|
d->height()-mNotificationMap[nId]->height());
|
|
|
|
|
}
|
|
|
|
|
mNotificationMap[nId]->show();
|
|
|
|
|
}
|
|
|
|
|
mNotificationMap[nId]->show();
|
|
|
|
|
|
|
|
|
|
NotifyAsyncReply(asyncCallId, nId);
|
|
|
|
|
}
|
|
|
|
|
|