Browse Source

Fix main window turns blank after restoring from tray (#15031)

When restoring from tray icon, although the window manager shows qbt
window but qbt itself didn't handle the event correctly, i.e. the
`show()` was missing and thus qbt did nothing and the window is blank.
Note that at this point the `visible` property is `false`.
After invoking `show()` qbt will start showing the contents and also
fire another showEvent where `visible` property is `true` and here is where
qbt should handle preparations for the window.

Fix #9510.
adaptive-webui-19844
Chocobo1 4 years ago committed by GitHub
parent
commit
2503271a45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 23
      src/gui/mainwindow.cpp

23
src/gui/mainwindow.cpp

@ -1131,17 +1131,26 @@ void MainWindow::on_actionStatistics_triggered()
void MainWindow::showEvent(QShowEvent *e) void MainWindow::showEvent(QShowEvent *e)
{ {
qDebug("** Show Event **"); qDebug("** Show Event **");
e->accept();
if (currentTabWidget() == m_transferListWidget) if (isVisible())
m_propertiesWidget->loadDynamicData(); {
// preparations before showing the window
e->accept(); if (currentTabWidget() == m_transferListWidget)
m_propertiesWidget->loadDynamicData();
// Make sure the window is initially centered // Make sure the window is initially centered
if (!m_posInitialized) if (!m_posInitialized)
{
move(Utils::Gui::screenCenter(this));
m_posInitialized = true;
}
}
else
{ {
move(Utils::Gui::screenCenter(this)); // to avoid blank screen when restoring from tray icon
m_posInitialized = true; show();
} }
} }

Loading…
Cancel
Save