The R Project SVN R

Rev

Rev 61682 | Rev 67054 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 61682 Rev 61709
Line 1... Line 1...
1
/*
1
/*
2
 *  R : A Computer Language for Statistical Data Analysis
2
 *  R : A Computer Language for Statistical Data Analysis
3
 *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
3
 *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
4
 *  Copyright (C) 1997--2011  The R Core Team
4
 *  Copyright (C) 1997--2013  The R Core Team
5
 *
5
 *
6
 *  This program is free software; you can redistribute it and/or modify
6
 *  This program is free software; you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation; either version 2 of the License, or
8
 *  the Free Software Foundation; either version 2 of the License, or
9
 *  (at your option) any later version.
9
 *  (at your option) any later version.
Line 242... Line 242...
242
 
242
 
243
static void Cairo_update(pX11Desc xd)
243
static void Cairo_update(pX11Desc xd)
244
{
244
{
245
    if(inclose || !xd || !xd->buffered || xd->holdlevel > 0) return;
245
    if(inclose || !xd || !xd->buffered || xd->holdlevel > 0) return;
246
    cairo_paint(xd->xcc);
246
    cairo_paint(xd->xcc);
-
 
247
    /* workaround for bug in cairo 1.12.x (PR#15168) */
247
    cairo_surface_flush(xd->xcs);
248
    cairo_surface_flush(xd->xcs);
248
    if (xd->type == WINDOW) XDefineCursor(display, xd->window, arrow_cursor);
249
    if (xd->type == WINDOW) XDefineCursor(display, xd->window, arrow_cursor);
249
    XSync(display, 0);
250
    XSync(display, 0);
250
    xd->last = currentTime();
251
    xd->last = currentTime();
251
}
252
}
Line 754... Line 755...
754
#ifdef HAVE_WORKING_CAIRO
755
#ifdef HAVE_WORKING_CAIRO
755
	    pX11Desc xd = (pX11Desc) dd->deviceSpecific;
756
	    pX11Desc xd = (pX11Desc) dd->deviceSpecific;
756
	    /* We can use the buffered copy where we have it */ 
757
	    /* We can use the buffered copy where we have it */ 
757
	    if(xd->buffered == 1) {
758
	    if(xd->buffered == 1) {
758
		cairo_paint(xd->xcc);
759
		cairo_paint(xd->xcc);
-
 
760
		/* workaround for bug in cairo 1.12.x (PR#15168) */
759
		cairo_surface_flush(xd->xcs);
761
		cairo_surface_flush(xd->xcs);
760
	    } else if (xd->buffered > 1)
762
	    } else if (xd->buffered > 1)
761
		/* rely on timer to repaint eventually */
763
		/* rely on timer to repaint eventually */
762
		xd->last_activity = currentTime();
764
		xd->last_activity = currentTime();
763
	    else
765
	    else