rendered paste bodyIndex: src/gui/painting/qwindowsurface_x11.cpp
===================================================================
--- src/gui/painting/qwindowsurface_x11.cpp (revision 698283)
+++ src/gui/painting/qwindowsurface_x11.cpp (working copy)
@@ -107,11 +107,21 @@
return false;
GC gc = XCreateGC(X11->display, d_ptr->device.handle(), 0, 0);
- XCopyArea(X11->display, d_ptr->device.handle(), d_ptr->device.handle(), gc,
- rect.x(), rect.y(), rect.width(), rect.height(),
- rect.x()+dx, rect.y()+dy);
+ Pixmap temp = XCreatePixmap(X11->display, d_ptr->device.handle(),
+ rect.width(), rect.height(), d_ptr->device.depth());
+ XCopyArea(X11->display, d_ptr->device.handle(), temp, gc,
+ rect.x(), rect.y(), rect.width(), rect.height(), 0, 0);
+ XCopyArea(X11->display, temp, d_ptr->device.handle(), gc,
+ 0, 0, rect.width(), rect.height(), rect.x() + dx, rect.y() + dy);
+ XFreePixmap(X11->display, temp);
XFreeGC(X11->display, gc);
+ //GC gc = XCreateGC(X11->display, d_ptr->device.handle(), 0, 0);
+ //XCopyArea(X11->display, d_ptr->device.handle(), d_ptr->device.handle(), gc,
+ // rect.x(), rect.y(), rect.width(), rect.height(),
+ // rect.x()+dx, rect.y()+dy);
+ //XFreeGC(X11->display, gc);
+
return true;
}