diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2014-03-07 16:46:51 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-10 10:34:59 +0100 |
commit | 2df6031b5935fafcada04bc15b281c63bdbfabf9 (patch) | |
tree | fbb4069faf8990ce94e8db79fb78eb8ca5196018 /src/quickwidgets | |
parent | 4c6c6d9a1743acf712b83e4dc9330a36afa70f80 (diff) |
QQuickWidget: handle resize to empty size
Resizing to an empty size needs to be handled as if the widget was
hidden. Restoring to a non-empty size is like a show, except that we
are rendering synchronously.
Task-number: QTBUG-37046
Change-Id: I572e4763c4a28bfe7347868e109acca5b357db50
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/quickwidgets')
-rw-r--r-- | src/quickwidgets/qquickwidget.cpp | 14 | ||||
-rw-r--r-- | src/quickwidgets/qquickwidget_p.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp index f25f9a2f35..5f470e46f0 100644 --- a/src/quickwidgets/qquickwidget.cpp +++ b/src/quickwidgets/qquickwidget.cpp @@ -98,6 +98,7 @@ QQuickWidgetPrivate::QQuickWidgetPrivate() , updateTimer(0) , eventPending(false) , updatePending(false) + , fakeHidden(false) { renderControl = new QQuickRenderControl; offscreenWindow = new QQuickWindow(renderControl); @@ -713,6 +714,19 @@ void QQuickWidget::resizeEvent(QResizeEvent *e) if (d->resizeMode == SizeRootObjectToView) d->updateSize(); + 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(); + } + d->createContext(); createFramebufferObject(); d->offscreenWindow->resizeEvent(e); diff --git a/src/quickwidgets/qquickwidget_p.h b/src/quickwidgets/qquickwidget_p.h index 1d0b4e1bbe..2d2d6500b2 100644 --- a/src/quickwidgets/qquickwidget_p.h +++ b/src/quickwidgets/qquickwidget_p.h @@ -114,6 +114,7 @@ public: int updateTimer; bool eventPending; bool updatePending; + bool fakeHidden; }; QT_END_NAMESPACE |