All pastes #728930 Raw Edit

nvidia diff

public text v1 · immutable
·published 2007-10-07 14:36 UTC
rendered paste body
Index: 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;
 }