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;