widget: clear WA_OutsideWSRange when needed in QWidgetPrivate::create()

which follows the behavior in QWidgetPrivate::setGeometry_sys().

Pick-to: 6.8
Fixes: QTBUG-129698
Change-Id: Ia85e9470111eea9e3392cdf38c3da2db232ef065
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit def4f827da98d3027c86a8dae27811729767d36a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Liang Qi 2024-10-07 09:44:56 +02:00 committed by Qt Cherry-pick Bot
parent ef2207ae48
commit a46cb99c69

View File

@ -1401,9 +1401,12 @@ void QWidgetPrivate::create()
if (data.crect.width() == 0 || data.crect.height() == 0) {
q->setAttribute(Qt::WA_OutsideWSRange, true);
} else if (q->isVisible()) {
// If widget is already shown, set window visible, too
win->setNativeWindowVisibility(true);
} else {
q->setAttribute(Qt::WA_OutsideWSRange, false);
if (q->isVisible()) {
// If widget is already shown, set window visible, too
win->setNativeWindowVisibility(true);
}
}
}