diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp index 6fec282f29d..b4993bfd179 100644 --- a/src/plugins/platforms/xcb/qxcbbackingstore.cpp +++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp @@ -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(),