summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp b/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
index d53874c..0d07bcb 100644
--- a/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
@@ -4,6 +4,7 @@
#include "mdichild.h"
#include "mdiwindow.h"
#include "taskbar.h"
+#include "uiconfig.h"
#include <QMdiSubWindow>
#include <QAction>
#include <QActionGroup>
@@ -35,6 +36,12 @@ MdiWindow *MdiArea::addSubWindow(MdiChild *mdiChild)
if (!mdiChild->handleInitialFocus())
mdiChild->setFocus();
+ if (taskBar)
+ {
+ if (taskBar->getTasks().size() == 1 && CFG_UI.General.OpenMaximized.get())
+ mdiWin->setWindowState(mdiWin->windowState()|Qt::WindowMaximized);
+ }
+
emit windowListChanged();
return mdiWin;
}
@@ -111,12 +118,23 @@ void MdiArea::windowDestroyed(MdiWindow* window)
return;
QAction* action = winToActionMap[window];
+ QAction* taskToSelect = nullptr;
+ if (!MAINWINDOW->isClosingApp())
+ {
+ taskToSelect = taskBar->getNextTask(action);
+ if (!taskToSelect)
+ taskToSelect = taskBar->getPrevTask(action);
+ }
+
winToActionMap.remove(window);
actionToWinMap.remove(action);
taskBar->removeTask(action);
delete action;
emit windowListChanged();
+
+ if (taskToSelect)
+ taskBar->setActiveTask(taskToSelect);
}
void MdiArea::windowActivated()