aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-10-07 11:01:44 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-10-07 11:01:44 +0200
commit4ec9b013684458bdf77a7a5a11d0a3cfa1f62b86 (patch)
tree8f7f9d7ea145062633b21d6939eb0651aee2aa5c
parentShow subwindow system menu at correct position (diff)
downloadsmolbote-4ec9b013684458bdf77a7a5a11d0a3cfa1f62b86.tar.xz
mainwindow: keep maximized state when adding subwindows
Only maximize added subwindow when there is no current subwindow, or when the current subwindow is maximized.
-rw-r--r--src/mainwindow/mainwindow.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp
index d191fac..1f81b86 100644
--- a/src/mainwindow/mainwindow.cpp
+++ b/src/mainwindow/mainwindow.cpp
@@ -354,10 +354,20 @@ SubWindow *MainWindow::currentSubWindow() const
SubWindow *MainWindow::createSubWindow(const std::unique_ptr<Configuration> &config, WebProfile *profile)
{
+ bool shouldMaximize = true;
+ // if there is a current window, use its maximize state
+ if(auto *currentWindow = qobject_cast<SubWindow *>(mdiArea->currentSubWindow()); currentWindow != nullptr) {
+ shouldMaximize = currentWindow->isMaximized();
+ }
+
auto *w = new SubWindow(config, this);
w->setProfile(profile);
mdiArea->addSubWindow(w);
- w->showMaximized();
+ if(shouldMaximize)
+ w->showMaximized();
+ else
+ w->show();
+
w->setFocus();
return w;
}