summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/main.cpp b/src/main.cpp
index c25d7df..77c4932 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -212,18 +212,18 @@ void setupScreens()
MainWindow *old = remaining.take(it.key());
if (old != nullptr) {
// Existing
- qDebug() << "Re-using existing window";
- old->setGeometry(it.value());
- if (old->showLoginForm() && primary != it.key()) {
- qDebug() << "Destroying old login form";
- LoginForm *logForm = old->stealLoginForm();
- if (logForm != nullptr) {
- logForm->setParent(nullptr);
- logForm->deleteLater();
+ if (old->showLoginForm() == (primary == it.key())) {
+ qDebug() << "Re-using existing window";
+ old->setGeometry(it.value());
+ currentWindows.insert(it.key(), old);
+ it.remove();
+ if (old->showLoginForm()) {
+ old->setFocus(Qt::OtherFocusReason);
+ old->activateWindow();
}
+ } else {
+ old->deleteLater();
}
- currentWindows.insert(it.key(), old);
- it.remove();
}
}
} while(0);
@@ -234,17 +234,15 @@ void setupScreens()
it.next();
MainWindow *old = nullptr;
if (!remaining.empty()) {
- qDebug() << "This should never happen, reusing old window II";
old = remaining.take(remaining.firstKey());
if (old != nullptr) {
- if (old->showLoginForm() && primary != it.key()) {
- LoginForm *logForm = old->stealLoginForm();
- if (logForm != nullptr) {
- logForm->setParent(nullptr);
- logForm->deleteLater();
- }
+ if (old->showLoginForm() == (primary == it.key())) {
+ qDebug() << "This should never happen, reusing old window II";
+ old->setGeometry(it.value());
+ } else {
+ old->deleteLater();
+ old = nullptr;
}
- old->setGeometry(it.value());
}
}
if (old == nullptr) {