>> What do you think about the use of GC extension data in the patch?
>> It allows us to extract information about clipping rectangles not
>> from struct glyph_string but from GC without using a wrapper.
> Sorry but I don't have a time to read your code in detail. Could
> you explain why using GC extension data is better than (struct
> glyphs_string *)->clip?
I guess you introduced the members for clipping rectangles in struct
glyph_string because we can't extract such information, which is
necessary for text drawing, from the raw GC. In the case of cairo
drawing, such information is also necessary for almost all kinds of
drawing, and the use of GC extension data allows us to extract
clipping rectangles without introducing a wrapper data structure of GC
(though we need a couple of wrapper functions,
x_(re)set_clip_rectangles). This strategy can also be applied to the
existing text drawing routines.