diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2012-03-27 13:16:36 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2012-03-28 21:45:20 +0200 |
commit | 37c36d4658ed9552b996b032d9fa1c6b84b14b5b (patch) | |
tree | 1f5d1a6e24b3ced284a44f8920ac7595ebcfd881 /src/plugins/platforms/wayland/qwaylandwindow.cpp | |
parent | 55bbecad0ec75bc942aa0ca73a228fc2d58c8105 (diff) |
Prevented crash and missing animation for shm clients.
Do the delayed attach _before_ we call handleExposeEvent(), which
might in turn lead to a damage being called before any buffer is
attached.
Change-Id: I55ef4f0de1b3ec201e727cebc52cfd891963b2b4
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandwindow.cpp')
-rw-r--r-- | src/plugins/platforms/wayland/qwaylandwindow.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp index 07a9c467f..0273cd294 100644 --- a/src/plugins/platforms/wayland/qwaylandwindow.cpp +++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp @@ -122,14 +122,15 @@ void QWaylandWindow::setVisible(bool visible) { if (visible) { + if (mBuffer) + wl_surface_attach(mSurface, mBuffer->buffer(), 0, 0); + if (!mSentInitialResize) { QWindowSystemInterface::handleSynchronousGeometryChange(window(), geometry()); mSentInitialResize = true; } + QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size())); - if (mBuffer) { - wl_surface_attach(mSurface, mBuffer->buffer(),0,0); - } } else { QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size())); wl_surface_attach(mSurface, 0,0,0); |