diff options
author | Jonas Schnelli <dev@jonasschnelli.ch> | 2019-03-22 11:07:35 +0100 |
---|---|---|
committer | Jonas Schnelli <dev@jonasschnelli.ch> | 2019-03-22 11:09:06 +0100 |
commit | abd914ed34f12a5e7773e87e0457b04bcb7d58c4 (patch) | |
tree | 0cb0c2217a7ba16c56c5ace775d59df73023ef8b | |
parent | 717fd58c4ba5c64778fa9a8bf6bbf5ae1164df3f (diff) | |
parent | a10972bc03e1ebbe79c3edc929c91ed53b391c9a (diff) |
Merge #15614: gui: Defer removeAndDeleteWallet when no modal widget is active
a10972bc0 gui: Defer removeAndDeleteWallet when no modal widget is active (João Barbosa)
Pull request description:
Fixes #15310.
Tree-SHA512: ac91a4e37020d3a854830c50c0a7a45c2c0537f80be492ec5e9ba7daf90725e912f9dcc324605493599c36180e1d3bcdfa86840b7325cba208b7e93fbe7be368
-rw-r--r-- | src/qt/walletcontroller.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp index fab86a7912..019bd65823 100644 --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -9,9 +9,11 @@ #include <algorithm> +#include <QApplication> #include <QMessageBox> #include <QMutexLocker> #include <QThread> +#include <QWindow> WalletController::WalletController(interfaces::Node& node, const PlatformStyle* platform_style, OptionsModel* options_model, QObject* parent) : QObject(parent) @@ -97,7 +99,17 @@ WalletModel* WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wal m_wallets.push_back(wallet_model); connect(wallet_model, &WalletModel::unload, [this, wallet_model] { - removeAndDeleteWallet(wallet_model); + // Defer removeAndDeleteWallet when no modal widget is active. + // TODO: remove this workaround by removing usage of QDiallog::exec. + if (QApplication::activeModalWidget()) { + connect(qApp, &QApplication::focusWindowChanged, wallet_model, [this, wallet_model]() { + if (!QApplication::activeModalWidget()) { + removeAndDeleteWallet(wallet_model); + } + }, Qt::QueuedConnection); + } else { + removeAndDeleteWallet(wallet_model); + } }); // Re-emit coinsSent signal from wallet model. |