qt: Disable tray icon menu when a modal dialog is active

This commit is contained in:
Hennadii Stepanov 2022-02-08 17:24:42 +02:00
parent 92427354dd
commit 8c0eb80f41
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F

View File

@ -818,17 +818,27 @@ void BitcoinGUI::createTrayIconMenu()
// Using QSystemTrayIcon::Context is not reliable.
// See https://bugreports.qt.io/browse/QTBUG-91697
trayIconMenu.get(), &QMenu::aboutToShow,
[this, show_hide_action, send_action, receive_action, sign_action, verify_action] {
[this, show_hide_action, send_action, receive_action, sign_action, verify_action, options_action, node_window_action, quit_action] {
if (show_hide_action) show_hide_action->setText(
(!isHidden() && !isMinimized() && !GUIUtil::isObscured(this)) ?
tr("&Hide") :
tr("S&how"));
if (QApplication::activeModalWidget()) {
for (QAction* a : trayIconMenu.get()->actions()) {
a->setEnabled(false);
}
} else {
if (show_hide_action) show_hide_action->setEnabled(true);
if (enableWallet) {
send_action->setEnabled(sendCoinsAction->isEnabled());
receive_action->setEnabled(receiveCoinsAction->isEnabled());
sign_action->setEnabled(signMessageAction->isEnabled());
verify_action->setEnabled(verifyMessageAction->isEnabled());
}
options_action->setEnabled(optionsAction->isEnabled());
node_window_action->setEnabled(openRPCConsoleAction->isEnabled());
if (quit_action) quit_action->setEnabled(true);
}
});
}