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:
parent
1de292d473
commit
6948ef6ca7
@ -491,13 +491,13 @@ bool QXcbBackingStoreImage::scroll(const QRegion &area, int dx, int dy)
|
|||||||
for (const QRect &rect : scrollArea)
|
for (const QRect &rect : scrollArea)
|
||||||
qt_scrollRectInImage(m_qimage, rect, delta);
|
qt_scrollRectInImage(m_qimage, rect, delta);
|
||||||
} else {
|
} else {
|
||||||
|
ensureGC(m_xcb_pixmap);
|
||||||
|
|
||||||
if (hasShm())
|
if (hasShm())
|
||||||
shmPutImage(m_xcb_pixmap, m_pendingFlush.intersected(scrollArea));
|
shmPutImage(m_xcb_pixmap, m_pendingFlush.intersected(scrollArea));
|
||||||
else
|
else
|
||||||
flushPixmap(scrollArea);
|
flushPixmap(scrollArea);
|
||||||
|
|
||||||
ensureGC(m_xcb_pixmap);
|
|
||||||
|
|
||||||
for (const QRect &src : scrollArea) {
|
for (const QRect &src : scrollArea) {
|
||||||
const QRect dst = src.translated(delta).intersected(bounds);
|
const QRect dst = src.translated(delta).intersected(bounds);
|
||||||
xcb_copy_area(xcb_connection(),
|
xcb_copy_area(xcb_connection(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user