diff options
| author | Wladimir J. van der Laan <[email protected]> | 2012-02-17 13:50:32 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2012-02-17 17:14:02 +0100 |
| commit | 83d1d1a90603c6d063d176a3d5efdeb1074b0fe4 (patch) | |
| tree | 3d0228b238e448c0e4977fe2f348b2bae0658424 /src | |
| parent | Merge pull request #843 from TheBlueMatt/qrcodedoc (diff) | |
| download | discoin-83d1d1a90603c6d063d176a3d5efdeb1074b0fe4.tar.xz discoin-83d1d1a90603c6d063d176a3d5efdeb1074b0fe4.zip | |
Hide window from taskbar when "minimize to tray" active by making window into Tool window
Diffstat (limited to 'src')
| -rw-r--r-- | src/qt/bitcoingui.cpp | 27 | ||||
| -rw-r--r-- | src/qt/bitcoingui.h | 4 |
2 files changed, 9 insertions, 22 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index b72f12829..a3b4fd2a8 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -56,7 +56,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): QMainWindow(parent), clientModel(0), walletModel(0), - dummyWidget(0), encryptWalletAction(0), changePassphraseAction(0), aboutQtAction(0), @@ -86,9 +85,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): // Create the tray icon (or setup the dock icon) createTrayIcon(); - // Dummy widget used when restoring window state after minimization - dummyWidget = new QWidget(); - // Create tabs overviewPage = new OverviewPage(); @@ -166,7 +162,6 @@ BitcoinGUI::~BitcoinGUI() #ifdef Q_WS_MAC delete appMenuBar; #endif - delete dummyWidget; } void BitcoinGUI::createActions() @@ -414,14 +409,6 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason) } #endif -void BitcoinGUI::showNormal() -{ - // Reparent window to the desktop (in case it was hidden on minimize) - if(parent() != NULL) - setParent(NULL, Qt::Window); - QMainWindow::showNormal(); -} - void BitcoinGUI::optionsClicked() { if(!clientModel || !clientModel->getOptionsModel()) @@ -561,15 +548,19 @@ void BitcoinGUI::changeEvent(QEvent *e) { if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray()) { - if(isMinimized()) + QWindowStateChangeEvent *wsevt = static_cast<QWindowStateChangeEvent*>(e); + bool wasMinimized = wsevt->oldState() & Qt::WindowMinimized; + bool isMinimized = windowState() & Qt::WindowMinimized; + if(!wasMinimized && isMinimized) { - // Hiding the window from taskbar - setParent(dummyWidget, Qt::SubWindow); + // Minimized, hide the window from taskbar + setWindowFlags(windowFlags() | Qt::Tool); return; } - else + else if(wasMinimized && !isMinimized) { - showNormal(); + // Unminimized, show the window in taskbar + setWindowFlags(windowFlags() &~ Qt::Tool); } } } diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 37ab12577..09ad89a89 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -58,8 +58,6 @@ private: QStackedWidget *centralWidget; - QWidget *dummyWidget; - OverviewPage *overviewPage; QWidget *transactionsPage; AddressBookPage *addressBookPage; @@ -133,8 +131,6 @@ public slots: void gotoMessagePage(); void gotoMessagePage(QString); - void showNormal(); - private slots: /** Switch to overview (home) page */ void gotoOverviewPage(); |