53 lines
1.9 KiB
Diff
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();
|
||
|
+}
|