diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 098b17490..45551657d 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -193,6 +193,7 @@ private: ClientModel *clientModel; BitcoinGUI *window; WalletModel *walletModel; + QTimer *pollShutdownTimer; int returnValue; void startThread(); @@ -250,6 +251,7 @@ BitcoinApplication::BitcoinApplication(int &argc, char **argv): clientModel(0), window(0), walletModel(0), + pollShutdownTimer(0), returnValue(0) { setQuitOnLastWindowClosed(false); @@ -282,7 +284,7 @@ void BitcoinApplication::createWindow(bool isaTestNet) { window = new BitcoinGUI(isaTestNet, 0); - QTimer* pollShutdownTimer = new QTimer(window); + pollShutdownTimer = new QTimer(window); connect(pollShutdownTimer, SIGNAL(timeout()), window, SLOT(detectShutdown())); pollShutdownTimer->start(200); } @@ -326,6 +328,7 @@ void BitcoinApplication::requestShutdown() window->hide(); window->setClientModel(0); window->removeAllWallets(); + pollShutdownTimer->stop(); delete walletModel; walletModel = 0; diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index f8daa08c4..ee27fe90a 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -855,7 +855,11 @@ void BitcoinGUI::toggleHidden() void BitcoinGUI::detectShutdown() { if (ShutdownRequested()) - QMetaObject::invokeMethod(QCoreApplication::instance(), "quit", Qt::QueuedConnection); + { + if(rpcConsole) + rpcConsole->hide(); + qApp->quit(); + } } static bool ThreadSafeMessageBox(BitcoinGUI *gui, const std::string& message, const std::string& caption, unsigned int style)