X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=8e11a291570ffae9e686fd50e3cde66b3ff73606;hp=4c39b1229488c6ead696db5f96f4b89b3ec33451;hb=d5213ee34d58ffeeeb99d750d58034ee31c1e9ae;hpb=366f5e334c898bef4b88605cf5cf2ee2feabffb1 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 4c39b122..8e11a291 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -684,7 +684,7 @@ void MainWin::closeEvent(QCloseEvent *event) { QtUiApplication* app = qobject_cast qApp; Q_ASSERT(app); if(!app->aboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) { - hideToTray(); + toggleMinimizedToTray(); event->ignore(); } else { event->accept(); @@ -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) {