xcb: Flush scrolled region of backingstore to client when requesting image

We were doing this for composeAndFlush already, which accesses the image
via graphicsBuffer().

Task-number: QTBUG-64504
Task-number: QTBUG-64414
Pick-to: 6.2
Change-Id: I51cc002db8a15991f8a8aa32e849c07318e6e74c
Reviewed-by: Błażej Szczygieł <mumei6102@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
Tor Arne Vestbø 2021-10-01 13:54:47 +02:00
parent 0a02d84555
commit 719990d4ef

View File

@ -842,7 +842,12 @@ QImage QXcbBackingStore::toImage() const
// If the backingstore is rgbSwapped, return the internal image type here. // If the backingstore is rgbSwapped, return the internal image type here.
if (!m_rgbImage.isNull()) if (!m_rgbImage.isNull())
return m_rgbImage; return m_rgbImage;
return m_image && m_image->image() ? *m_image->image() : QImage();
if (!m_image || !m_image->image())
return QImage();
m_image->flushScrolledRegion(true);
return *m_image->image();
} }
QPlatformGraphicsBuffer *QXcbBackingStore::graphicsBuffer() const QPlatformGraphicsBuffer *QXcbBackingStore::graphicsBuffer() const