diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindow.cpp')
| -rw-r--r-- | src/plugins/platforms/wasm/qwasmwindow.cpp | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/platforms/wasm/qwasmwindow.cpp b/src/plugins/platforms/wasm/qwasmwindow.cpp index 9294bb7ab50..9ee3c37f85e 100644 --- a/src/plugins/platforms/wasm/qwasmwindow.cpp +++ b/src/plugins/platforms/wasm/qwasmwindow.cpp @@ -187,14 +187,16 @@ void QWasmWindow::initialize()  {      QRect rect = windowGeometry(); -    constexpr int minSizeBoundForDialogsAndRegularWindows = 100;      const auto windowFlags = window()->flags(); -    const int systemMinSizeLowerBound = windowFlags.testAnyFlags(Qt::Window | Qt::Dialog) -            ? minSizeBoundForDialogsAndRegularWindows -            : 0; +    const bool shouldRestrictMinSize = +            !windowFlags.testFlag(Qt::FramelessWindowHint) && !windowIsPopupType(windowFlags); +    const bool isMinSizeUninitialized = window()->minimumSize() == QSize(0, 0); -    const QSize minimumSize(std::max(windowMinimumSize().width(), systemMinSizeLowerBound), -                            std::max(windowMinimumSize().height(), systemMinSizeLowerBound)); +    if (shouldRestrictMinSize && isMinSizeUninitialized) +        window()->setMinimumSize(QSize(minSizeForRegularWindows, minSizeForRegularWindows)); + + +    const QSize minimumSize = windowMinimumSize();      const QSize maximumSize = windowMaximumSize();      const QSize targetSize = !rect.isEmpty() ? rect.size() : minimumSize; @@ -256,6 +258,8 @@ void QWasmWindow::setGeometry(const QRect &rect)          QRect result(rect);          result.moveTop(std::max(std::min(rect.y(), screenGeometry.bottom()),                                  screenGeometry.y() + margins.top())); +        result.setSize( +                result.size().expandedTo(windowMinimumSize()).boundedTo(windowMaximumSize()));          return result;      })();      m_nonClientArea->onClientAreaWidthChange(clientAreaRect.width());  | 
