From: Carlos Garcia Campos Date: Mon, 12 Jul 2010 18:01:25 +0000 (+0200) Subject: [libview] Use cairo_region_xor() when available X-Git-Tag: EVINCE_2_31_5~5 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=cb2b94df0d415021904d5f96c68447152a7bcf6b;p=evince.git [libview] Use cairo_region_xor() when available --- diff --git a/libview/ev-view.c b/libview/ev-view.c index 61e4c0c6..e024fb9f 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -5664,12 +5664,14 @@ merge_selection_region (EvView *view, /* Now we figure out what needs redrawing */ if (old_sel && new_sel) { if (old_sel->covered_region && new_sel->covered_region) { - cairo_region_t *tbr; - /* We only want to redraw the areas that have * changed, so we xor the old and new regions * and redraw if it's different */ region = cairo_region_copy (old_sel->covered_region); +#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 9, 12) + cairo_region_xor (region, new_sel->covered_region); +#else + cairo_region_t *tbr; tbr = cairo_region_copy (new_sel->covered_region); /* xor old_sel, new_sel*/ @@ -5677,6 +5679,7 @@ merge_selection_region (EvView *view, cairo_region_subtract (region, new_sel->covered_region); cairo_region_union (region, tbr); cairo_region_destroy (tbr); +#endif if (cairo_region_is_empty (region)) { cairo_region_destroy (region);