Fix restoring maximized state at restart on Windows
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 26 May 2009 20:40:55 +0000 (22:40 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Mon, 8 Jun 2009 12:56:14 +0000 (14:56 +0200)
src/qtui/mainwin.cpp

index 8578ad0..01b6375 100644 (file)
@@ -206,15 +206,18 @@ void MainWin::saveStateToSettings(UiSettings &s) {
   s.setValue("MainWinState", saveState());
   s.setValue("MainWinGeometry", saveGeometry());
   s.setValue("MainWinMinimized", isMinimized());
   s.setValue("MainWinState", saveState());
   s.setValue("MainWinGeometry", saveGeometry());
   s.setValue("MainWinMinimized", isMinimized());
+  s.setValue("MainWinMaximized", isMaximized());
   s.setValue("MainWinHidden", _isHidden);
 }
 
 void MainWin::restoreStateFromSettings(UiSettings &s) {
   _normalSize = s.value("MainWinSize", size()).toSize();
   _normalPos = s.value("MainWinPos", pos()).toPoint();
   s.setValue("MainWinHidden", _isHidden);
 }
 
 void MainWin::restoreStateFromSettings(UiSettings &s) {
   _normalSize = s.value("MainWinSize", size()).toSize();
   _normalPos = s.value("MainWinPos", pos()).toPoint();
+  bool maximized = s.value("MainWinMaximized", false).toBool();
 
   restoreGeometry(s.value("MainWinGeometry").toByteArray());
 
   restoreGeometry(s.value("MainWinGeometry").toByteArray());
-  if(isMaximized()) {
+
+  if(maximized) {
     // restoreGeometry() fails if the windows was maximized, so we resize and position explicitly
     resize(_normalSize);
     move(_normalPos);
     // restoreGeometry() fails if the windows was maximized, so we resize and position explicitly
     resize(_normalSize);
     move(_normalPos);
@@ -227,6 +230,8 @@ void MainWin::restoreStateFromSettings(UiSettings &s) {
     hideToTray();
   else if(s.value("MainWinMinimized").toBool())
     showMinimized();
     hideToTray();
   else if(s.value("MainWinMinimized").toBool())
     showMinimized();
+  else if(maximized)
+    showMaximized();
   else
     show();
 }
   else
     show();
 }
@@ -851,7 +856,8 @@ void MainWin::forceActivated() {
     setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
   }
 
     setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
   }
 
-  move(frameGeometry().topLeft()); // avoid placement policies
+  // this does not actually work on all platforms... and causes more evil than good
+  // move(frameGeometry().topLeft()); // avoid placement policies
   show();
   raise();
   activateWindow();
   show();
   raise();
   activateWindow();