diff options
Diffstat (limited to 'src/widgets/kernel')
| -rw-r--r-- | src/widgets/kernel/qopenglwidget.h | 6 | ||||
| -rw-r--r-- | src/widgets/kernel/qwidget.cpp | 8 | ||||
| -rw-r--r-- | src/widgets/kernel/qwidgetbackingstore.cpp | 5 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/widgets/kernel/qopenglwidget.h b/src/widgets/kernel/qopenglwidget.h index 28d802e1f40..f706ea75679 100644 --- a/src/widgets/kernel/qopenglwidget.h +++ b/src/widgets/kernel/qopenglwidget.h @@ -42,6 +42,10 @@ #ifndef QOPENGLWIDGET_H #define QOPENGLWIDGET_H +#include <QtCore/qglobal.h> + +#ifndef QT_NO_OPENGL + #include <QtWidgets/QWidget> #include <QtGui/QSurfaceFormat> #include <QtGui/qopengl.h> @@ -97,4 +101,6 @@ private: QT_END_NAMESPACE +#endif // QT_NO_OPENGL + #endif // QOPENGLWIDGET_H diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 34adea866e2..21278a0ba9e 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5486,22 +5486,30 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP //paint the background if ((asRoot || q->autoFillBackground() || onScreen || q->testAttribute(Qt::WA_StyledBackground)) && !q->testAttribute(Qt::WA_OpaquePaintEvent) && !q->testAttribute(Qt::WA_NoSystemBackground)) { +#ifndef QT_NO_OPENGL beginBackingStorePainting(); +#endif QPainter p(q); paintBackground(&p, toBePainted, (asRoot || onScreen) ? flags | DrawAsRoot : 0); +#ifndef QT_NO_OPENGL endBackingStorePainting(); +#endif } if (!sharedPainter) setSystemClip(pdev, toBePainted.translated(offset)); if (!onScreen && !asRoot && !isOpaque && q->testAttribute(Qt::WA_TintedBackground)) { +#ifndef QT_NO_OPENGL beginBackingStorePainting(); +#endif QPainter p(q); QColor tint = q->palette().window().color(); tint.setAlphaF(qreal(.6)); p.fillRect(toBePainted.boundingRect(), tint); +#ifndef QT_NO_OPENGL endBackingStorePainting(); +#endif } } diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index 2a968939e4c..103e244593b 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -1158,6 +1158,7 @@ void QWidgetBackingStore::doSync() return; } +#ifndef QT_NO_OPENGL // There is something other dirty than the renderToTexture widgets. // Now it is time to include the renderToTexture ones among the others. if (widgetTextures && widgetTextures->count()) { @@ -1167,6 +1168,8 @@ void QWidgetBackingStore::doSync() toClean += rect; } } +#endif + // The dirtyRenderToTextureWidgets list is useless here, so just reset. As // unintuitive as it is, we need to send paint events to renderToTexture // widgets always when something (any widget) needs to be updated, even if @@ -1249,8 +1252,10 @@ void QWidgetBackingStore::flush(QWidget *widget) QWidget *target = widget ? widget : tlw; qt_flush(target, dirtyOnScreen, store, tlw, tlwOffset, widgetTextures, this); dirtyOnScreen = QRegion(); +#ifndef QT_NO_OPENGL if (widgetTextures && widgetTextures->count()) return; +#endif } if (!dirtyOnScreenWidgets || dirtyOnScreenWidgets->isEmpty()) { |
