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