Re: Firefox failure with cairo 1.12.6 on NetBSD-current amd64
Martin Husemann <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Oct 25, 2012 at 09:59:26AM +0100, Chris Wilson wrote: > Can you please take a look at src/cairo-xlib-surface-shm.c, > xorg_has_buggy_send_shm_completion_event() and add a necessary clause to > detect your XServer? Or attach your xdpyifo? Thanks for quick reply and pointer to easy solution - I mixed it with the bzero Thomas just reported (haven't tried individually yet), and sure enough this makes it work again. Our server identifies as: version number: 11.0 vendor string: The Xorg Foundation vendor release number: 11003000 Martin -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo
patch
(text/plain, 867 B)
--- src/cairo-xlib-surface-shm.c.orig 2012-10-21 10:13:41.000000000 +0200
+++ src/cairo-xlib-surface-shm.c 2012-10-25 21:11:57.000000000 +0200
@@ -1021,6 +1021,7 @@ _cairo_xlib_shm_surface_mark_active (cai
cairo_xlib_display_t *display = (cairo_xlib_display_t *) _shm->device;
XShmCompletionEvent ev;
+ bzero(&ev, sizeof(ev));
ev.type = display->shm->event;
ev.drawable = display->shm->window;
ev.major_code = display->shm->opcode;
@@ -1141,7 +1142,8 @@ xorg_has_buggy_send_shm_completion_event
*
* Remove the SendEvent bit (0x80) before doing range checks on event type.
*/
- return (strstr (ServerVendor (dpy), "X.Org") != NULL &&
+ return ((strstr (ServerVendor (dpy), "X.Org") != NULL ||
+ strstr (ServerVendor (dpy), "Xorg") != NULL ) &&
VendorRelease (dpy) < XORG_VERSION_ENCODE(1,11,0,1));
}