aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-04-04 14:41:10 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-04-04 14:41:10 -0400
commitb5f93b05578293d1d233b4920a28a5c2fd826f94 (patch)
tree82332679f647e9c76e331206786d07a58dcfa9b8 /SQLiteStudio3/guiSQLiteStudio/mdiarea.cpp
parentaf8a7a3e3dccf9c9ad257e3952173d180c8a7421 (diff)
parenta5b034d4a9c44f9bc1e83b01de82530f8fc63013 (diff)
Merge tag 'upstream/3.0.4'
Upstream version 3.0.4 # gpg: Signature made Sat 04 Apr 2015 02:41:09 PM EDT using RSA key ID EBE9BD91 # gpg: Good signature from "Unit 193 <unit193@gmail.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.org>" # gpg: aka "Unit 193 <unit193@ubuntu.com>" # gpg: aka "Unit 193 <unit193@ninthfloor.com>"
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()