38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
--- a/src/modules/X11/devX11.c (révision 61681)
|
|
+++ b/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);
|
|
|