Browse Source

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

miguelfreitas
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): @@ -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): @@ -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() @@ -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) @@ -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) @@ -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);
}
}
}

4
src/qt/bitcoingui.h

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

Loading…
Cancel
Save