nheko/nheko-fix-quit.patch
2018-07-12 14:34:53 +02:00

53 lines
1.9 KiB
Diff

From 363e3735f13fb5d2f03078bfc7146dd0487bd6ce Mon Sep 17 00:00:00 2001
From: Konstantinos Sideris <sideris.konstantin@gmail.com>
Date: Wed, 11 Jul 2018 20:55:13 +0300
Subject: [PATCH] Allow close events from the session manager (#353)
---
include/MainWindow.h | 2 ++
src/MainWindow.cc | 14 +++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/include/MainWindow.h b/include/MainWindow.h
index 3840bd9..9204019 100644
--- a/include/MainWindow.h
+++ b/include/MainWindow.h
@@ -119,6 +119,8 @@ private slots:
void restoreWindowSize();
//! Check if there is an open dialog.
bool hasActiveDialogs() const;
+ //! Check if the current page supports the "minimize to tray" functionality.
+ bool pageSupportsTray() const;
static MainWindow *instance_;
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 37739dc..37b806d 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -277,11 +277,8 @@ MainWindow::showChatPage()
void
MainWindow::closeEvent(QCloseEvent *event)
{
- // Decide whether or not we should enable tray for the current page.
- bool pageSupportsTray =
- !welcome_page_->isVisible() && !login_page_->isVisible() && !register_page_->isVisible();
-
- if (isVisible() && pageSupportsTray && userSettings_->isTrayEnabled()) {
+ if (!qApp->isSavingSession() && isVisible() && pageSupportsTray() &&
+ userSettings_->isTrayEnabled()) {
event->ignore();
hide();
}
@@ -505,3 +502,10 @@ MainWindow::hasActiveDialogs() const
(!createRoomModal_.isNull() && createRoomModal_->isVisible()) ||
(!logoutModal_.isNull() && logoutModal_->isVisible());
}
+
+bool
+MainWindow::pageSupportsTray() const
+{
+ return !welcome_page_->isVisible() && !login_page_->isVisible() &&
+ !register_page_->isVisible();
+}