From df43394df200fde86d912f84a881fc751a15ffbf Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Thu, 16 Nov 2023 11:57:15 +0100 Subject: [PATCH] xcb: only set base size when it's valid MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In rare situation, base size could be (-1,-1) or (-2,-2) for high dpi, it will be converted into huge positive numbers. https://tronche.com/gui/x/icccm/sec-4.html If a base size is not provided, the minimum size is to be used in its place and vice versa. Pick-to: 6.2 5.15 Task-number: QTBUG-117702 Change-Id: I900ed82f2291fb454d7e34a0dee27459d0a57240 Reviewed-by: Qt CI Bot Reviewed-by: Tor Arne Vestbø Reviewed-by: Axel Spoerl (cherry picked from commit 25720f5a6365125d77400a26f11dbcfc950e5c5f) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 0abe21de9d15b7ee5fa2383d4f4f675df9a8d893) Reviewed-by: Liang Qi --- src/plugins/platforms/xcb/qxcbwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 78bc30105e7..33c04a8d835 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -1430,7 +1430,8 @@ void QXcbWindow::propagateSizeHints() qMin(XCOORD_MAX, maximumSize.height())); if (sizeIncrement.width() > 0 || sizeIncrement.height() > 0) { - xcb_icccm_size_hints_set_base_size(&hints, baseSize.width(), baseSize.height()); + if (!baseSize.isNull() && baseSize.isValid()) + xcb_icccm_size_hints_set_base_size(&hints, baseSize.width(), baseSize.height()); xcb_icccm_size_hints_set_resize_inc(&hints, sizeIncrement.width(), sizeIncrement.height()); }