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();
|
||||
|
||||
if (!store) {
|
||||
if (win && q->windowType() != Qt::Desktop)
|
||||
q->setBackingStore(new QBackingStore(win));
|
||||
else
|
||||
if (win && q->windowType() != Qt::Desktop) {
|
||||
if (q->isTopLevel())
|
||||
q->setBackingStore(new QBackingStore(win));
|
||||
} else {
|
||||
q->setAttribute(Qt::WA_PaintOnScreen, true);
|
||||
}
|
||||
}
|
||||
|
||||
setWindowModified_helper();
|
||||
|
Loading…
x
Reference in New Issue
Block a user