[WebODF] Different behaviour on delete and backspace for emptied spans?
Aditya Bhatt
aditya at bhatts.org
Thu Jun 27 11:03:23 CEST 2013
On 27-Jun-2013, at 5:21 AM, Philip Peitsch <P.Peitsch at qsrinternational.com> wrote:
>
> On 26/06/2013, at 11:56 PM, Friedrich W. H. Kossebau wrote:
>>
>> I would have expected to get the same results in both cases.
>
> +1 for this. This is definitely a side-effect, not an intended thing
I agree.
>
>>
>> Playing with LO I found that there the span is kept in both cases (tested by
>> creating an empty document, inserting an "A", marking it and directly
>> formatting it to bold, removing the A in either ways again and saving as .fodt
>> and inspecting with a text editor, while also seeing that with the empty
>> document the Bold is toggled and any inserted chars are ending up in the span,
>> being formatted with Bold).
>> … [snip]
>> What do you think? Should emptied spans be deleted in this case? Or should
>> empty spans only be deleted once a deletion range crosses their border?
>
> Ideally the deletion should only happen once the range crosses the node's boundary.
> This is going to be tricky however as currently OpRemoveText is REALLY text oriented,
> and really will need to be re-written to be able to handle the (imo correct) behaviour
> you're proposing.
>
> We'll need to rewrite it anyways, as a the moment it is unable to remove images, tables,
> etc. and is not really terribly reliable on complex documents. I can also see no easy way
> to adapt the existing code easily to accommodate this, as the whole operation is driven
> by text neighbourhoods. Hence the recent tab deletion patch, it was easier to ADD text
> for the operation to remove. (No criticism intended of the original code btw… it has
> served it's purpose well so far :-), I just think we're now rapidly out-growing it!)
>
I agree that OpRemoveText is very text oriented, and the neighbourhood approach might
be obsolete now that we should be able to access iterators and filters in the operation itself.
I don't mind trashing the neighbourhood code once an approach that passes all tests and has at least
all the capabilities of the current technique is written.
> I have some ideas about using position iterators and ranges, but similar to a top-secret
> military-funded research project, I currently have no functional implementations ;-). The
> basic intent is this becomes OpRemoveRange instead, and is focused primarily on
> removing "valid" ODT positions in the supplied range.
>
Makes sense.
But let's wait for Jos's input on this. i.e., till monday, before an OpRemoveRange is made.
Tobias: Any comments?
> _______________________________________________
> WebODF mailing list
> WebODF at nlnet.nl
> https://open.nlnet.nl/mailman/listinfo/webodf
More information about the WebODF
mailing list