summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2023-11-16 11:57:15 +0100
committerLiang Qi <liang.qi@qt.io>2023-11-17 22:32:24 +0100
commit25720f5a6365125d77400a26f11dbcfc950e5c5f (patch)
tree21ffdda16765e183510c3f37b1282082d0b2a27e /src/plugins/platforms/xcb
parentd54d28858f4072fc8ebb935e81bec80537f0ad44 (diff)
xcb: only set base size when it's valid
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.6 6.5 6.2 5.15 Task-number: QTBUG-117702 Change-Id: I900ed82f2291fb454d7e34a0dee27459d0a57240 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb')
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 3e613495a1..dc9d7257b1 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -1442,7 +1442,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());
}