Allow close events from the session manager (#353)

This commit is contained in:
Konstantinos Sideris 2018-07-11 20:55:13 +03:00
parent 80ebe3f29d
commit 363e3735f1
2 changed files with 11 additions and 5 deletions

View file

@ -119,6 +119,8 @@ private:
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_;

View file

@ -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();
}