summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoni Poikelin <[email protected]>2025-01-28 14:23:18 +0200
committerJoni Poikelin <[email protected]>2025-01-29 12:24:01 +0200
commit9940f3f280473856858afafc6a4a4feab48c653f (patch)
tree4beefd8940b637377797ad306b9b28c68cd4d072
parent07318c81a700b4d4a46c81ae2e4f17c6b1e501c0 (diff)
Fix crash cases where window container tries to touch destroyed window
Fixes: QTBUG-133289 Pick-to: 6.9 6.8 6.5 Change-Id: I4b5a6ab12c32133d633e1bf11567119d52c1cb5a Reviewed-by: Tor Arne Vestbø <[email protected]>
-rw-r--r--src/widgets/kernel/qwindowcontainer.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/widgets/kernel/qwindowcontainer.cpp b/src/widgets/kernel/qwindowcontainer.cpp
index e8e8299d805..721bffebf2b 100644
--- a/src/widgets/kernel/qwindowcontainer.cpp
+++ b/src/widgets/kernel/qwindowcontainer.cpp
@@ -424,7 +424,9 @@ void QWindowContainer::parentWasChanged(QWidget *parent)
void QWindowContainer::parentWasMoved(QWidget *parent)
{
if (QWindowContainerPrivate *d = QWindowContainerPrivate::get(parent)) {
- if (d->window->parent())
+ if (!d->window)
+ return;
+ else if (d->window->parent())
d->updateGeometry();
}
qwindowcontainer_traverse(parent, parentWasMoved);
@@ -433,7 +435,9 @@ void QWindowContainer::parentWasMoved(QWidget *parent)
void QWindowContainer::parentWasRaised(QWidget *parent)
{
if (QWindowContainerPrivate *d = QWindowContainerPrivate::get(parent)) {
- if (d->window->parent())
+ if (!d->window)
+ return;
+ else if (d->window->parent())
d->window->raise();
}
qwindowcontainer_traverse(parent, parentWasRaised);
@@ -442,7 +446,9 @@ void QWindowContainer::parentWasRaised(QWidget *parent)
void QWindowContainer::parentWasLowered(QWidget *parent)
{
if (QWindowContainerPrivate *d = QWindowContainerPrivate::get(parent)) {
- if (d->window->parent())
+ if (!d->window)
+ return;
+ else if (d->window->parent())
d->window->lower();
}
qwindowcontainer_traverse(parent, parentWasLowered);