diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index ea759805e..d050529f8 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -72,7 +72,7 @@ MainWindow::MainWindow() m_inactivityTimer = new InactivityTimer(this); connect(m_inactivityTimer, SIGNAL(inactivityDetected()), - m_ui->tabWidget, SLOT(lockDatabases())); + this, SLOT(lockDatabasesAfterInactivity())); applySettingsChanges(); setShortcut(m_ui->actionDatabaseOpen, QKeySequence::Open, Qt::CTRL + Qt::Key_O); @@ -579,6 +579,16 @@ void MainWindow::toggleWindow() } } +void MainWindow::lockDatabasesAfterInactivity() +{ + // ignore event if a modal dialog is open (such as a message box or file dialog) + if (QApplication::activeModalWidget()) { + return; + } + + m_ui->tabWidget->lockDatabases(); +} + bool MainWindow::isTrayIconEnabled() const { return config()->get("GUI/ShowTrayIcon").toBool() diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h index b966703d1..695c20d41 100644 --- a/src/gui/MainWindow.h +++ b/src/gui/MainWindow.h @@ -65,6 +65,7 @@ private Q_SLOTS: void applySettingsChanges(); void trayIconTriggered(QSystemTrayIcon::ActivationReason reason); void toggleWindow(); + void lockDatabasesAfterInactivity(); private: static void setShortcut(QAction* action, QKeySequence::StandardKey standard, int fallback = 0);