diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-02-21 13:11:53 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-11 15:58:12 +0100 |
commit | 1f8f991d7c61d046783b3f541d9121f0a47bcd23 (patch) | |
tree | 6c9a27e7b6e7250127540a77befab97699ce5928 /examples | |
parent | 7ab464dca0f303460597d4ec3f03a0ecae352be5 (diff) | |
download | qtwayland-1f8f991d7c61d046783b3f541d9121f0a47bcd23.tar.gz qtwayland-1f8f991d7c61d046783b3f541d9121f0a47bcd23.tar.bz2 qtwayland-1f8f991d7c61d046783b3f541d9121f0a47bcd23.zip |
Make the compositor redraw when a surface gets a commit().
It must redraw, even if it doesn't actually redraw anything, irrespective
of the fact that a attach/damage has come or not. Just calling frame();commit()
is perfectly valid.
Change-Id: If298654b8a7cb7c954cfbad8618f23134731cb9f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/qwidget-compositor/main.cpp | 15 | ||||
-rw-r--r-- | examples/qwindow-compositor/qwindowcompositor.cpp | 9 | ||||
-rw-r--r-- | examples/qwindow-compositor/qwindowcompositor.h | 4 |
3 files changed, 11 insertions, 17 deletions
diff --git a/examples/qwidget-compositor/main.cpp b/examples/qwidget-compositor/main.cpp index ed1c0a3f..7a268fbd 100644 --- a/examples/qwidget-compositor/main.cpp +++ b/examples/qwidget-compositor/main.cpp @@ -110,27 +110,22 @@ private slots: update(); } - void surfaceDamaged(const QRegion &rect) { + void surfaceCommitted() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); - surfaceDamaged(surface, rect); + surfaceCommitted(surface); } protected: - void surfaceDamaged(QWaylandSurface *surface, const QRegion &rect) + void surfaceCommitted(QWaylandSurface *surface) { -#ifdef QT_COMPOSITOR_WAYLAND_GL Q_UNUSED(surface); - Q_UNUSED(rect); update(); -#else - update(rect.translated(surface->geometry().topLeft())); -#endif } void surfaceCreated(QWaylandSurface *surface) { connect(surface, SIGNAL(destroyed(QObject *)), this, SLOT(surfaceDestroyed(QObject *))); connect(surface, SIGNAL(mapped()), this, SLOT(surfaceMapped())); - connect(surface, SIGNAL(damaged(const QRegion &)), this, SLOT(surfaceDamaged(const QRegion &))); + connect(surface, SIGNAL(committed()), this, SLOT(surfaceCommitted())); update(); } @@ -265,7 +260,7 @@ protected: void raise(QWaylandSurface *surface) { defaultInputDevice()->setKeyboardFocus(surface); - surfaceDamaged(surface, QRect(QPoint(), surface->size())); + update(); m_surfaces.removeOne(surface); m_surfaces.append(surface); } diff --git a/examples/qwindow-compositor/qwindowcompositor.cpp b/examples/qwindow-compositor/qwindowcompositor.cpp index f64922db..e0f213aa 100644 --- a/examples/qwindow-compositor/qwindowcompositor.cpp +++ b/examples/qwindow-compositor/qwindowcompositor.cpp @@ -159,10 +159,10 @@ void QWindowCompositor::surfaceUnmapped() ensureKeyboardFocusSurface(surface); } -void QWindowCompositor::surfaceDamaged(const QRegion &rect) +void QWindowCompositor::surfaceCommitted() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); - surfaceDamaged(surface, rect); + surfaceCommitted(surface); } void QWindowCompositor::surfacePosChanged() @@ -170,10 +170,9 @@ void QWindowCompositor::surfacePosChanged() m_renderScheduler.start(0); } -void QWindowCompositor::surfaceDamaged(QWaylandSurface *surface, const QRegion &rect) +void QWindowCompositor::surfaceCommitted(QWaylandSurface *surface) { Q_UNUSED(surface) - Q_UNUSED(rect) m_renderScheduler.start(0); } @@ -182,7 +181,7 @@ void QWindowCompositor::surfaceCreated(QWaylandSurface *surface) connect(surface, SIGNAL(destroyed(QObject *)), this, SLOT(surfaceDestroyed(QObject *))); connect(surface, SIGNAL(mapped()), this, SLOT(surfaceMapped())); connect(surface, SIGNAL(unmapped()), this, SLOT(surfaceUnmapped())); - connect(surface, SIGNAL(damaged(const QRegion &)), this, SLOT(surfaceDamaged(const QRegion &))); + connect(surface, SIGNAL(committed()), this, SLOT(surfaceCommitted())); connect(surface, SIGNAL(extendedSurfaceReady()), this, SLOT(sendExpose())); connect(surface, SIGNAL(posChanged()), this, SLOT(surfacePosChanged())); m_renderScheduler.start(0); diff --git a/examples/qwindow-compositor/qwindowcompositor.h b/examples/qwindow-compositor/qwindowcompositor.h index f8d354c3..e26a09eb 100644 --- a/examples/qwindow-compositor/qwindowcompositor.h +++ b/examples/qwindow-compositor/qwindowcompositor.h @@ -61,12 +61,12 @@ private slots: void surfaceDestroyed(QObject *object); void surfaceMapped(); void surfaceUnmapped(); - void surfaceDamaged(const QRegion &rect); + void surfaceCommitted(); void surfacePosChanged(); void render(); protected: - void surfaceDamaged(QWaylandSurface *surface, const QRegion &rect); + void surfaceCommitted(QWaylandSurface *surface); void surfaceCreated(QWaylandSurface *surface); QWaylandSurface* surfaceAt(const QPointF &point, QPointF *local = 0); |