aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Moffett <john.moff@gmail.com>2022-11-15 10:41:03 -0500
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2022-11-17 14:43:34 +0000
commit39af5f216461b614c78060ff89ea1ab03b936dd0 (patch)
treef9f6e17e879754ea02bbc28ba9b0faa02e8b83f3
parentdd314fe0c2f64818d2789955a8ceef50d3d6597d (diff)
downloadbitcoin-39af5f216461b614c78060ff89ea1ab03b936dd0.tar.xz
Fixes bitcoin#26490 by preventing notifications
MacOS 13 sends a window focus change notification after the main window has been destroyed but before the QTApplication has been destroyed. This results in the menu bar receiving a notification despite it no longer existing. The solution is to pass the main window as context when subscribing to the notifications. Qt automatically unsubscribes to notifications if the sender OR context is destroyed. Github-Pull: bitcoin-core/gui#680 Rebased-From: 8a5014cd8a05b3ab86ae34a47653a82ce11bdf17
-rw-r--r--src/qt/bitcoingui.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 894a401e56..18d374311a 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -512,7 +512,7 @@ void BitcoinGUI::createMenuBar()
connect(minimize_action, &QAction::triggered, [] {
QApplication::activeWindow()->showMinimized();
});
- connect(qApp, &QApplication::focusWindowChanged, [minimize_action] (QWindow* window) {
+ connect(qApp, &QApplication::focusWindowChanged, this, [minimize_action] (QWindow* window) {
minimize_action->setEnabled(window != nullptr && (window->flags() & Qt::Dialog) != Qt::Dialog && window->windowState() != Qt::WindowMinimized);
});
@@ -527,7 +527,7 @@ void BitcoinGUI::createMenuBar()
}
});
- connect(qApp, &QApplication::focusWindowChanged, [zoom_action] (QWindow* window) {
+ connect(qApp, &QApplication::focusWindowChanged, this, [zoom_action] (QWindow* window) {
zoom_action->setEnabled(window != nullptr);
});
#endif