1 --- cairo-1.8.4/src/cairo-xlib-display.c.orig 2008-11-13 23:56:33.000000000 +0800 2 +++ cairo-1.8.4/src/cairo-xlib-display.c 2008-11-25 14:39:56.342087676 +0800 3 @@ -66,6 +66,8 @@ 4 5 static cairo_xlib_display_t *_cairo_xlib_display_list; 6 7 +static int buggy_repeat_force = -1; 8 + 9 static void 10 _cairo_xlib_remove_close_display_hook_internal (cairo_xlib_display_t *display, 11 cairo_xlib_hook_t *hook); 12 @@ -337,6 +339,17 @@ 13 if (VendorRelease (dpy) <= 40500000) 14 display->buggy_repeat = TRUE; 15 } 16 +/* workaround; see http://defect.opensolaris.org/bz/show_bug.cgi?id=4187 */ 17 + if (buggy_repeat_force == -1) { 18 + if (getenv("CAIRO_NO_BUGGY_REPEAT")) 19 + buggy_repeat_force = 0; 20 + else 21 + buggy_repeat_force = 1; 22 + } 23 + 24 + if (buggy_repeat_force) 25 + display->buggy_repeat = TRUE; 26 + 27 28 display->next = _cairo_xlib_display_list; 29 _cairo_xlib_display_list = display; 30