Browse Source

Hide window from taskbar when "minimize to tray" active by making window into Tool window

try
Wladimir J. van der Laan 13 years ago
parent
commit
83d1d1a906
  1. 27
      src/qt/bitcoingui.cpp
  2. 4
      src/qt/bitcoingui.h

27
src/qt/bitcoingui.cpp

@ -56,7 +56,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
QMainWindow(parent), QMainWindow(parent),
clientModel(0), clientModel(0),
walletModel(0), walletModel(0),
dummyWidget(0),
encryptWalletAction(0), encryptWalletAction(0),
changePassphraseAction(0), changePassphraseAction(0),
aboutQtAction(0), aboutQtAction(0),
@ -86,9 +85,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Create the tray icon (or setup the dock icon) // Create the tray icon (or setup the dock icon)
createTrayIcon(); createTrayIcon();
// Dummy widget used when restoring window state after minimization
dummyWidget = new QWidget();
// Create tabs // Create tabs
overviewPage = new OverviewPage(); overviewPage = new OverviewPage();
@ -166,7 +162,6 @@ BitcoinGUI::~BitcoinGUI()
#ifdef Q_WS_MAC #ifdef Q_WS_MAC
delete appMenuBar; delete appMenuBar;
#endif #endif
delete dummyWidget;
} }
void BitcoinGUI::createActions() void BitcoinGUI::createActions()
@ -414,14 +409,6 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
} }
#endif #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() void BitcoinGUI::optionsClicked()
{ {
if(!clientModel || !clientModel->getOptionsModel()) if(!clientModel || !clientModel->getOptionsModel())
@ -561,15 +548,19 @@ void BitcoinGUI::changeEvent(QEvent *e)
{ {
if(clientModel && clientModel->getOptionsModel()->getMinimizeToTray()) 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 // Minimized, hide the window from taskbar
setParent(dummyWidget, Qt::SubWindow); setWindowFlags(windowFlags() | Qt::Tool);
return; return;
} }
else else if(wasMinimized && !isMinimized)
{ {
showNormal(); // Unminimized, show the window in taskbar
setWindowFlags(windowFlags() &~ Qt::Tool);
} }
} }
} }

4
src/qt/bitcoingui.h

@ -58,8 +58,6 @@ private:
QStackedWidget *centralWidget; QStackedWidget *centralWidget;
QWidget *dummyWidget;
OverviewPage *overviewPage; OverviewPage *overviewPage;
QWidget *transactionsPage; QWidget *transactionsPage;
AddressBookPage *addressBookPage; AddressBookPage *addressBookPage;
@ -133,8 +131,6 @@ public slots:
void gotoMessagePage(); void gotoMessagePage();
void gotoMessagePage(QString); void gotoMessagePage(QString);
void showNormal();
private slots: private slots:
/** Switch to overview (home) page */ /** Switch to overview (home) page */
void gotoOverviewPage(); void gotoOverviewPage();

Loading…
Cancel
Save