aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2012-02-17 13:50:32 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2012-02-17 17:14:02 +0100
commit83d1d1a90603c6d063d176a3d5efdeb1074b0fe4 (patch)
tree3d0228b238e448c0e4977fe2f348b2bae0658424
parentb7c25e0c1346256be12310264ea5cc4ce7794118 (diff)
Hide window from taskbar when "minimize to tray" active by making window into Tool window
-rw-r--r--src/qt/bitcoingui.cpp27
-rw-r--r--src/qt/bitcoingui.h4
2 files changed, 9 insertions, 22 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index b72f128291..a3b4fd2a82 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 37ab12577c..09ad89a894 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();