blob: 3a02b28ead9d766cc05d5f1d8bdd2dacf02ed2a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
|