X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=643df3682c38011a729f7490fa2f75643ae4a6c7;hb=661013d9d9588cd5383dbb0838dcfd35c95ba5ad;hp=4c39b1229488c6ead696db5f96f4b89b3ec33451;hpb=366f5e334c898bef4b88605cf5cf2ee2feabffb1;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 4c39b122..643df368 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -694,7 +694,7 @@ void MainWin::closeEvent(QCloseEvent *event) { void MainWin::systrayActivated(QSystemTrayIcon::ActivationReason activationReason) { if(activationReason == QSystemTrayIcon::Trigger) { - restoreFromTray(); + toggleMinimizedToTray(); } } @@ -709,10 +709,16 @@ void MainWin::hideToTray() { systemTrayIcon()->show(); } -void MainWin::restoreFromTray() { - setWindowState(windowState() & ~Qt::WindowMinimized | Qt::WindowActive); - show(); - raise(); +void MainWin::toggleMinimizedToTray() { + if(windowState() & Qt::WindowMinimized) { + // restore + setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + show(); + raise(); + } else { + setWindowState((windowState() & ~Qt::WindowActive) | Qt::WindowMinimized); + hideToTray(); + } } void MainWin::messagesInserted(const QModelIndex &parent, int start, int end) {