The difference between the images: 1.png: created by painting the pattern with cairo_paint. 2.png: cairo_rectangle + cairo_fill (results in clipping to the correct area) 3.png: set extend to REPEAT then painted with cairo_rectangle + cairo_fill 4.png: set extend to REFLECT then painted with cairo_rectangle + cairo_fill The only error I see is the bottom of the scrollbar slider, not sure what happens there, but I think that it probably is an engine/theme bug. non-cairo.png: obviously the old version of the engine, wich does not use cairo.