aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2022-02-22 10:29:24 +0200
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2022-02-22 10:35:15 +0200
commit00f8492eebfc2882705f6c34e952033f21667cba (patch)
tree24817faed14b7c24a5af5e6736db992f95d7b978 /src
parent48a90c61e2269e6de78416001dd28bf3e12d9ebe (diff)
parente7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 (diff)
downloadbitcoin-00f8492eebfc2882705f6c34e952033f21667cba.tar.xz
Merge bitcoin-core/gui#547: Override BitcoinApplication::event() to handle QEvent::Quit
e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 qt: Override BitcoinApplication::event() to handle QEvent::Quit (Hennadii Stepanov) Pull request description: bitcoin-core/gui#336 introduced a regression when termination requests from a platform are not handled properly. This PR fixes this regression. On macOS shutdown after clicking "Quit" in Dock icon menu, and during logout works again. Fixes bitcoin-core/gui#545. ACKs for top commit: RandyMcMillan: tACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 Sjors: tACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 (rebased on master) indeed fixes the crash described in #545 promag: Tested ACK e7fc50681e99e3c726db2bc4d3d425ed8a0fc6b3 on macOS 10.15 with Qt 5.15.2. Tree-SHA512: 236a483dc0828f22999469e133b8ac9f0b6267ec2a27004c3ebaa967689ddb972ea1fa90c1dd41f3bff3d17bf571a707babcef53bd79fd711fda98cfbf120131
Diffstat (limited to 'src')
-rw-r--r--src/qt/bitcoin.cpp10
-rw-r--r--src/qt/bitcoin.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index eb31287c56..ac313bdb9d 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -454,6 +454,16 @@ WId BitcoinApplication::getMainWinId() const
return window->winId();
}
+bool BitcoinApplication::event(QEvent* e)
+{
+ if (e->type() == QEvent::Quit) {
+ requestShutdown();
+ return true;
+ }
+
+ return QApplication::event(e);
+}
+
static void SetupUIArgs(ArgsManager& argsman)
{
argsman.AddArg("-choosedatadir", strprintf("Choose data directory on startup (default: %u)", DEFAULT_CHOOSE_DATADIR), ArgsManager::ALLOW_ANY, OptionsCategory::GUI);
diff --git a/src/qt/bitcoin.h b/src/qt/bitcoin.h
index 0703c6dcb9..7a6aa5cdc9 100644
--- a/src/qt/bitcoin.h
+++ b/src/qt/bitcoin.h
@@ -92,6 +92,9 @@ Q_SIGNALS:
void splashFinished();
void windowShown(BitcoinGUI* window);
+protected:
+ bool event(QEvent* e) override;
+
private:
std::optional<InitExecutor> m_executor;
OptionsModel *optionsModel;