From 023afebba1751d8f79beaf55e8e37f77503f39eb Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Tue, 29 Apr 2014 15:28:46 +0200 Subject: [PATCH] Qt5: constrain the window buffer refresh area With this patch, the information about the changed window area is taken into account when refreshing the Nitpicker buffer. Fixes #1132. --- .../platforms/nitpicker/qnitpickerplatformwindow.cpp | 2 +- .../platforms/nitpicker/qnitpickerwindowsurface.cpp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp index cc09b3a38..87eafd59e 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerplatformwindow.cpp @@ -491,7 +491,7 @@ unsigned char *QNitpickerPlatformWindow::framebuffer() void QNitpickerPlatformWindow::refresh(int x, int y, int w, int h) { if (qnpw_verbose) - qDebug() << "QNitpickerPlatformWindow::refresh()"; + qDebug("QNitpickerPlatformWindow::refresh(%d, %d, %d, %d)", x, y, w, h); _framebuffer_session.refresh(x, y, w, h); } diff --git a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerwindowsurface.cpp b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerwindowsurface.cpp index aabf7ae45..86ff16aa7 100644 --- a/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerwindowsurface.cpp +++ b/repos/libports/src/lib/qt5/qtbase/src/plugins/platforms/nitpicker/qnitpickerwindowsurface.cpp @@ -74,10 +74,16 @@ void QNitpickerWindowSurface::flush(QWindow *window, const QRegion ®ion, cons Q_UNUSED(offset); if (verbose) - qDebug() << "QNitpickerWindowSurface::flush()"; + qDebug() << "QNitpickerWindowSurface::flush(" + << "window =" << window + << ", region =" << region + << ", offset =" << offset + << ")"; - QRect geo = _platform_window->geometry(); - _platform_window->refresh(0, 0, geo.width(), geo.height()); + _platform_window->refresh(region.boundingRect().x() + offset.x(), + region.boundingRect().y() + offset.y(), + region.boundingRect().width(), + region.boundingRect().height()); } void QNitpickerWindowSurface::resize(const QSize &size, const QRegion &staticContents)