Subject: bug#25592: Feature request: sorting overlays

From: Clément Pit--Claudel <[email-masked]>
Date: Tue, 7 Feb 2017 14:17:13 -0500

On 2017-02-07 12:13, Eli Zaretskii wrote:
>> Cc: [email-masked]
>> From: Clément Pit--Claudel <[email-masked]>
>> Date: Sun, 5 Feb 2017 14:51:55 -0500
>>
>>>>> What will happen if you have 2 overlays like this:
>>>>>
>>>>>                +------------- OV2 -------+
>>>>>    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>>>>    +------- OV1 ---------+
>>>>>
>>>>> and OV2 has a higher priority than OV1?
>>>>
>>>> The two overlays get sorted as (OV1 OV2).
>>>
>>> But OV2 has a higher priority, so it should be the first in the sorted
>>> order, no?
>>
>> I process them in order of increasing priority, so OV1 gets processed first.
> 
> So you actually apply _all_ of the overlays in the buffer, one by one?
> That's really inefficient.  With my proposal, you'd only need to apply
> at most one overlay at each position where some overlay begins or
> ends, and do that for much fewer text segments.

I think I may have misunderstood your proposal, or failed to express what I was trying to achieve :/  If OV1 has face "(:weight bold)" and OV2 has face "(:slant italic)", I want to save both 'face properties. Can I really do that by applying at most one overlay at each position?

Clément.