diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 0adcc65a2cee6613bafb84dc6ff855e28de5542b..be127a54f3f8b477cf43d0510a3f265e7826891d 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include "qhighdpiscaling_p.h" -#include "qwindow_p.h" // for QWINDOWSIZE_MAX #include "qguiapplication.h" #include "qscreen.h" #include "qplatformintegration.h" @@ -228,15 +227,4 @@ QPoint QHighDpiScaling::origin(const QPlatformScreen *platformScreen) return platformScreen->geometry().topLeft(); } - -Q_GUI_EXPORT QSize QHighDpi::toNativePixelsConstrained(const QSize &size, const QWindow *window) -{ - const int width = size.width(); - const int height = size.height(); - return QSize(width > 0 && width < QWINDOWSIZE_MAX ? - QHighDpi::toNativePixels(width, window) : width, - height > 0 && height < QWINDOWSIZE_MAX ? - QHighDpi::toNativePixels(height, window) : height); -} - QT_END_NAMESPACE diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index 6c96fa2e07fb17eda74584cfcd6f70b10162da7c..8347214823a4932f50fd990fc5a759cbad86e6b0 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -284,9 +284,6 @@ inline QSize fromNativePixels(const QSize &pixelSize, const QWindow *window) return pixelSize / QHighDpiScaling::factor(window); } -// For converting minimum/maximum sizes of QWindow, limits to 0..QWINDOWSIZE_MAX -Q_GUI_EXPORT QSize toNativePixelsConstrained(const QSize &size, const QWindow *window); - inline QSize toNativePixels(const QSize &pointSize, const QWindow *window) { return pointSize * QHighDpiScaling::factor(window); diff --git a/src/gui/kernel/qplatformwindow.cpp b/src/gui/kernel/qplatformwindow.cpp index 94e2f18959ae25b3f76ba01b50e98480405dcf63..78b8001a98d7c580482e0a8f5c466146b5328eb6 100644 --- a/src/gui/kernel/qplatformwindow.cpp +++ b/src/gui/kernel/qplatformwindow.cpp @@ -496,6 +496,14 @@ QPlatformScreen *QPlatformWindow::screenForGeometry(const QRect &newGeometry) co return fallback; } +/*! + Returns a size with both dimentions bounded to [0, QWINDOWSIZE_MAX] +*/ +QSize QPlatformWindow::constrainWindowSize(const QSize &size) +{ + return size.boundedTo(QSize(0, 0)).boundedTo(QSize(QWINDOWSIZE_MAX, QWINDOWSIZE_MAX)); +} + /*! Reimplement this method to set whether the window demands attention (for example, by flashing the taskbar icon) depending on \a enabled. @@ -637,7 +645,7 @@ void QPlatformWindow::requestUpdate() */ QSize QPlatformWindow::windowMinimumSize() const { - return QHighDpi::toNativePixelsConstrained(window()->minimumSize(), window()); + return QHighDpi::toNativePixels(constrainWindowSize(window()->minimumSize()), window()); } /*! @@ -645,7 +653,7 @@ QSize QPlatformWindow::windowMinimumSize() const */ QSize QPlatformWindow::windowMaximumSize() const { - return QHighDpi::toNativePixelsConstrained(window()->maximumSize(), window()); + return QHighDpi::toNativePixels(constrainWindowSize(window()->maximumSize()), window()); } /*! diff --git a/src/gui/kernel/qplatformwindow.h b/src/gui/kernel/qplatformwindow.h index 0690ce12e152ebfae32a2e4bb9533f68f3a4ee57..c1f2a4bdf15a6d3489d400bcfdcd25da748bba90 100644 --- a/src/gui/kernel/qplatformwindow.h +++ b/src/gui/kernel/qplatformwindow.h @@ -141,6 +141,7 @@ public: protected: static QString formatWindowTitle(const QString &title, const QString &separator); QPlatformScreen *screenForGeometry(const QRect &newGeometry) const; + static QSize constrainWindowSize(const QSize &size); QScopedPointer<QPlatformWindowPrivate> d_ptr; private: