diff options
| author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-10-07 11:01:44 +0200 | 
|---|---|---|
| committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-10-07 11:01:44 +0200 | 
| commit | 4ec9b013684458bdf77a7a5a11d0a3cfa1f62b86 (patch) | |
| tree | 8f7f9d7ea145062633b21d6939eb0651aee2aa5c /src/mainwindow | |
| parent | Show subwindow system menu at correct position (diff) | |
| download | smolbote-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.
Diffstat (limited to 'src/mainwindow')
| -rw-r--r-- | src/mainwindow/mainwindow.cpp | 12 | 
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;  } | 
