summaryrefslogtreecommitdiff
path: root/extra/r/x11.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/r/x11.patch')
-rw-r--r--extra/r/x11.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/extra/r/x11.patch b/extra/r/x11.patch
new file mode 100644
index 000000000..3a02b28ea
--- /dev/null
+++ b/extra/r/x11.patch
@@ -0,0 +1,36 @@
+--- src/modules/X11/devX11.c (révision 61681)
++++ src/modules/X11/devX11.c (révision 61682)
+@@ -244,6 +244,7 @@
+ {
+ if(inclose || !xd || !xd->buffered || xd->holdlevel > 0) return;
+ cairo_paint(xd->xcc);
++ cairo_surface_flush(xd->xcs);
+ if (xd->type == WINDOW) XDefineCursor(display, xd->window, arrow_cursor);
+ XSync(display, 0);
+ xd->last = currentTime();
+@@ -753,8 +754,10 @@
+ #ifdef HAVE_WORKING_CAIRO
+ pX11Desc xd = (pX11Desc) dd->deviceSpecific;
+ /* We can use the buffered copy where we have it */
+- if(xd->buffered == 1) cairo_paint(xd->xcc);
+- else if (xd->buffered > 1)
++ if(xd->buffered == 1) {
++ cairo_paint(xd->xcc);
++ cairo_surface_flush(xd->xcs);
++ } else if (xd->buffered > 1)
+ /* rely on timer to repaint eventually */
+ xd->last_activity = currentTime();
+ else
+@@ -2691,7 +2694,11 @@
+ Cairo_update(xd);
+ return;
+ }
+- if(xd->buffered) cairo_paint(xd->xcc);
++ if(xd->buffered) {
++ cairo_paint(xd->xcc);
++ cairo_surface_flush(xd->xcs);
++ }
++
+ #endif
+ if(xd->type==WINDOW) XDefineCursor(display, xd->window, arrow_cursor);
+ XSync(display, 0);