QWidget: Don't rely on topextra to determine if window is top level
Doing so results in bailing out early for a widget that hasn't been shown yet, or otherwise resulted in creating extra and topextra, which means the normalGeometry will not reflect the widget's geometry. Pick-to: 6.2 Change-Id: Ieb85e9a6109ae34fe20d79e3c12f4517f827a590 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
c179549a74
commit
e95e9c28f0
@ -3668,7 +3668,7 @@ QPoint QWidget::pos() const
|
|||||||
QRect QWidget::normalGeometry() const
|
QRect QWidget::normalGeometry() const
|
||||||
{
|
{
|
||||||
Q_D(const QWidget);
|
Q_D(const QWidget);
|
||||||
if (!d->extra || !d->extra->topextra)
|
if (!isWindow())
|
||||||
return QRect();
|
return QRect();
|
||||||
|
|
||||||
if (!isMaximized() && !isFullScreen())
|
if (!isMaximized() && !isFullScreen())
|
||||||
|
@ -3172,6 +3172,7 @@ void tst_QWidget::normalGeometry()
|
|||||||
if (m_platform == QStringLiteral("wayland"))
|
if (m_platform == QStringLiteral("wayland"))
|
||||||
QSKIP("Wayland: This fails. Figure out why.");
|
QSKIP("Wayland: This fails. Figure out why.");
|
||||||
QWidget parent;
|
QWidget parent;
|
||||||
|
QCOMPARE(parent.normalGeometry(), parent.geometry());
|
||||||
parent.setWindowTitle("NormalGeometry parent");
|
parent.setWindowTitle("NormalGeometry parent");
|
||||||
QWidget *child = new QWidget(&parent);
|
QWidget *child = new QWidget(&parent);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user