2 files changed, 11 insertions, 1 deletions
diff --git a/include/MainWindow.h b/include/MainWindow.h
index 54a4766d..3aba736e 100644
--- a/include/MainWindow.h
+++ b/include/MainWindow.h
@@ -83,6 +83,8 @@ private slots:
private:
bool hasActiveUser();
void restoreWindowSize();
+ //! Check if there is an open dialog.
+ bool hasActiveDialogs() const;
static MainWindow *instance_;
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 56aef005..ea30b694 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -118,7 +118,8 @@ MainWindow::MainWindow(QWidget *parent)
QShortcut *quickSwitchShortcut = new QShortcut(QKeySequence("Ctrl+K"), this);
connect(quickSwitchShortcut, &QShortcut::activated, this, [this]() {
- chat_page_->showQuickSwitcher();
+ if (chat_page_->isVisible() && !hasActiveDialogs())
+ chat_page_->showQuickSwitcher();
});
QSettings settings;
@@ -289,3 +290,10 @@ MainWindow::showOverlayProgressBar()
progressModal_->show();
}
}
+
+bool
+MainWindow::hasActiveDialogs() const
+{
+ return (!leaveRoomModal_.isNull() && leaveRoomModal_->isVisible()) ||
+ (!progressModal_.isNull() && progressModal_->isVisible());
+}
|