diff options
Diffstat (limited to 'src/widgets/kernel')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 1 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetbackingstore.cpp | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 00f590ebc2..ed10beddd4 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -1508,6 +1508,7 @@ void QApplicationPrivate::setPalette_helper(const QPalette &palette, const char* QApplicationPrivate::set_pal = new QPalette(palette); else *QApplicationPrivate::set_pal = palette; + QCoreApplication::setAttribute(Qt::AA_SetPalette); } } diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 1f13a34ac0..b49fd9b3b6 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -2608,6 +2608,8 @@ QString QWidget::styleSheet() const void QWidget::setStyleSheet(const QString& styleSheet) { Q_D(QWidget); + if (data->in_destructor) + return; d->createExtra(); QStyleSheetStyle *proxy = qobject_cast<QStyleSheetStyle *>(d->extra->style); diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index f8b8ec5ea3..485cf82078 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -762,6 +762,7 @@ QWidgetBackingStore::~QWidgetBackingStore() resetWidget(dirtyRenderToTextureWidgets.at(c)); #ifndef QT_NO_OPENGL + delete widgetTextures; delete dirtyOnScreenWidgets; #endif dirtyOnScreenWidgets = 0; |