aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickrendercontrol.cpp6
-rw-r--r--src/quick/items/qquickwindow.cpp3
-rw-r--r--src/quick/items/qquickwindow_p.h1
-rw-r--r--src/quickwidgets/qquickwidget.cpp8
4 files changed, 7 insertions, 11 deletions
diff --git a/src/quick/items/qquickrendercontrol.cpp b/src/quick/items/qquickrendercontrol.cpp
index 16ed6f0e10..10a9691b65 100644
--- a/src/quick/items/qquickrendercontrol.cpp
+++ b/src/quick/items/qquickrendercontrol.cpp
@@ -136,7 +136,7 @@ void QQuickRenderControl::invalidate()
void QQuickRenderControl::polishItems()
{
Q_D(QQuickRenderControl);
- if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+ if (!d->window)
return;
QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
@@ -151,7 +151,7 @@ void QQuickRenderControl::polishItems()
bool QQuickRenderControl::sync()
{
Q_D(QQuickRenderControl);
- if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+ if (!d->window)
return false;
QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
@@ -187,7 +187,7 @@ void QQuickRenderControl::stop()
void QQuickRenderControl::render()
{
Q_D(QQuickRenderControl);
- if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+ if (!d->window)
return;
QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index bbc4e8b55c..06696437f1 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -409,7 +409,6 @@ QQuickWindowPrivate::QQuickWindowPrivate()
, persistentSceneGraph(true)
, lastWheelEventAccepted(false)
, componentCompleted(true)
- , forceRendering(false)
, renderTarget(0)
, renderTargetId(0)
, incubationController(0)
@@ -2300,7 +2299,7 @@ void QQuickWindowPrivate::data_clear(QQmlListProperty<QObject> *property)
bool QQuickWindowPrivate::isRenderable() const
{
Q_Q(const QQuickWindow);
- return (forceRendering || (q->isExposed() && q->isVisible())) && q->geometry().isValid();
+ return ((q->isExposed() && q->isVisible())) && q->geometry().isValid();
}
/*!
diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h
index 8b6073c30a..e78f00c22f 100644
--- a/src/quick/items/qquickwindow_p.h
+++ b/src/quick/items/qquickwindow_p.h
@@ -222,7 +222,6 @@ public:
uint lastWheelEventAccepted : 1;
bool componentCompleted : 1;
- bool forceRendering : 1;
QOpenGLFramebufferObject *renderTarget;
uint renderTargetId;
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp
index e1e581a5b9..dbc7d6c21a 100644
--- a/src/quickwidgets/qquickwidget.cpp
+++ b/src/quickwidgets/qquickwidget.cpp
@@ -162,6 +162,9 @@ void QQuickWidgetPrivate::renderSceneGraph()
Q_Q(QQuickWidget);
updatePending = false;
+ if (!q->isVisible() || fakeHidden)
+ return;
+
QOpenGLContext *context = offscreenWindow->openglContext();
if (!context) {
qWarning("QQuickWidget: render scenegraph with no context");
@@ -718,13 +721,11 @@ void QQuickWidget::resizeEvent(QResizeEvent *e)
if (e->size().isEmpty()) {
//stop rendering
- QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = false;
d->fakeHidden = true;
return;
}
if (d->fakeHidden) {
//restart rendering
- QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = true;
d->fakeHidden = false;
d->renderControl->sync();
}
@@ -798,8 +799,6 @@ void QQuickWidget::mouseDoubleClickEvent(QMouseEvent *e)
void QQuickWidget::showEvent(QShowEvent *)
{
Q_D(QQuickWidget);
- QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = true;
-
d->updatePending = false;
d->createContext();
triggerUpdate();
@@ -809,7 +808,6 @@ void QQuickWidget::showEvent(QShowEvent *)
void QQuickWidget::hideEvent(QHideEvent *)
{
Q_D(QQuickWidget);
- QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = false;
if (!d->context) {
qWarning("QQuickWidget::hideEvent with no context");