Support attributes that cover only part of a cluster
Submitted by Owen Taylor
Sometimes - see bug 104976 - you actually want attributes covering only part of a logical cluster. An approach that occurs to me is to simply stick all attributes that touch any part of the run into glyph_item->item->analysis.extra_attrs *with the correct start_index/end_index (same index system as glyph_item->glyphs->log_clusters)
A simple client would just render all the attributes, but a more sophisticated client would be able to:
A) Currently use the simple linear mapping we use, for say, hit point detection
B) In the future, possibly use some extended Pango interface (needing engine support) to understand the structure of the cluster better, possibly using information such as the "Ligature Caret" information in the OpenType GDEF table.