xcb: Ensure we have pixmap GC before trying to flush to it during scroll

Change-Id: Icc85b1eb830d8d9b1b2bfb8b9998470388522832
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 12af9ce6dbf4e523265c32edac7cd6c8ee006783)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Tor Arne Vestbø 2021-11-16 17:32:37 +01:00 committed by Qt Cherry-pick Bot
parent 1de292d473
commit 6948ef6ca7

View File

@ -491,13 +491,13 @@ bool QXcbBackingStoreImage::scroll(const QRegion &area, int dx, int dy)
for (const QRect &rect : scrollArea)
qt_scrollRectInImage(m_qimage, rect, delta);
} else {
ensureGC(m_xcb_pixmap);
if (hasShm())
shmPutImage(m_xcb_pixmap, m_pendingFlush.intersected(scrollArea));
else
flushPixmap(scrollArea);
ensureGC(m_xcb_pixmap);
for (const QRect &src : scrollArea) {
const QRect dst = src.translated(delta).intersected(bounds);
xcb_copy_area(xcb_connection(),