Fix QBackingStore object leaking
Check q->isTopLevel() before calling setBackingStore() in QWidgetPrivate::create_sys() to prevent QBackingStore leaking. This is because QWidget::setBackingStore() will return if isTopLevel() is true and the newly created QBackingStore object will be leaked. Change-Id: I2777acd4c317d5019f5b266feae005042026b8be Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
parent
a935b3fbd8
commit
9764f86027
@ -148,10 +148,12 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
|||||||
QBackingStore *store = q->backingStore();
|
QBackingStore *store = q->backingStore();
|
||||||
|
|
||||||
if (!store) {
|
if (!store) {
|
||||||
if (win && q->windowType() != Qt::Desktop)
|
if (win && q->windowType() != Qt::Desktop) {
|
||||||
q->setBackingStore(new QBackingStore(win));
|
if (q->isTopLevel())
|
||||||
else
|
q->setBackingStore(new QBackingStore(win));
|
||||||
|
} else {
|
||||||
q->setAttribute(Qt::WA_PaintOnScreen, true);
|
q->setAttribute(Qt::WA_PaintOnScreen, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setWindowModified_helper();
|
setWindowModified_helper();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user