if(watched == trayMenu() &&
(event->type() == QEvent::WindowDeactivate || (event->type() == QEvent::MouseButtonRelease && static_cast<QMouseEvent*>(event)->button() == Qt::LeftButton))) {
// put at the back of event queue to let the action activate anyways
QTimer::singleShot(0, trayMenu(), SLOT(hide()));
}
if(watched == trayMenu() &&
(event->type() == QEvent::WindowDeactivate || (event->type() == QEvent::MouseButtonRelease && static_cast<QMouseEvent*>(event)->button() == Qt::LeftButton))) {
// put at the back of event queue to let the action activate anyways
QTimer::singleShot(0, trayMenu(), SLOT(hide()));
}