void Manager::startNextHideTimer() { if (_toastByHideTime.isEmpty()) return; auto ms = getms(true); if (ms >= _toastByHideTime.firstKey()) { crl::on_main(this, [=] { hideByTimer(); }); } else { _hideTimer.callOnce(_toastByHideTime.firstKey() - ms); } }
NotifyWindow::NotifyWindow(HistoryItem *msg, int32 x, int32 y) : history(msg->history()), item(msg) #ifdef Q_OS_WIN , started(GetTickCount()) #endif , close(this, st::notifyClose) , alphaDuration(st::notifyFastAnim) , posDuration(st::notifyFastAnim) , hiding(false) , _index(0) , aOpacity(0) , aOpacityFunc(st::notifyFastAnimFunc) , aY(y + st::notifyHeight + st::notifyDeltaY) { updateNotifyDisplay(); hideTimer.setSingleShot(true); connect(&hideTimer, SIGNAL(timeout()), this, SLOT(hideByTimer())); inputTimer.setSingleShot(true); connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput())); connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistoryAndNotify())); close.setAcceptBoth(true); close.move(st::notifyWidth - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y()); close.show(); aY.start(y); setGeometry(x, aY.current(), st::notifyWidth, st::notifyHeight); aOpacity.start(1); setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint); setAttribute(Qt::WA_MacAlwaysShowToolWindow); show(); setWindowOpacity(aOpacity.current()); alphaDuration = posDuration = st::notifyFastAnim; anim::start(this); checkLastInput(); }