patches/cairo-03-buggy-repeat.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 18274 838b410049a5
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.

--- cairo-1.8.4/src/cairo-xlib-display.c.orig	2008-11-13 23:56:33.000000000 +0800
+++ cairo-1.8.4/src/cairo-xlib-display.c	2008-11-25 14:39:56.342087676 +0800
@@ -66,6 +66,8 @@
 
 static cairo_xlib_display_t *_cairo_xlib_display_list;
 
+static int buggy_repeat_force = -1;
+
 static void
 _cairo_xlib_remove_close_display_hook_internal (cairo_xlib_display_t *display,
 						cairo_xlib_hook_t *hook);
diff -ruN cairo-1.9.12.orig/src/cairo-xlib-display.c cairo-1.9.12/src/cairo-xlib-display.c
--- cairo-1.9.12.orig/src/cairo-xlib-display.c	2010-07-26 08:00:23.092320900 +0100
+++ cairo-1.9.12/src/cairo-xlib-display.c	2010-07-26 08:02:40.633971800 +0100
@@ -434,6 +434,17 @@
 	display->buggy_pad_reflect = TRUE;
     }
 
+/* workaround; see http://defect.opensolaris.org/bz/show_bug.cgi?id=4187 */
+    if (buggy_repeat_force == -1) {
+        if (getenv("CAIRO_NO_BUGGY_REPEAT"))
+            buggy_repeat_force = 0;
+        else
+            buggy_repeat_force = 1;
+    }
+
+    if (buggy_repeat_force)
+        display->buggy_repeat = TRUE;
+
     display->next = _cairo_xlib_display_list;
     _cairo_xlib_display_list = display;