summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindow.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmwindow.cpp16
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());