diff options
Diffstat (limited to 'extra/r/x11.patch')
-rw-r--r-- | extra/r/x11.patch | 36 |
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); |