https://bugs.documentfoundation.org/show_bug.cgi?id=149570

--- Comment #8 from Tomaz Vajngerl <[email protected]> ---
This change was necessary to make it possible to make it properly work with
multiple views (which are used in LOKit and COOL to make collaboration work).
Previous behavior always forced and exit from the edit box in all views when
there was a new item added to the undo stack. 

This would mean that if someone was writing in an text box in impress and
another user changed something somewhere on the same slide (could be even a
different slide), all the changes performed by the first user would be reverted
and he would be forced out of the text box.

Another issue related to this was also that in a text box all the actions
between entering and exiting the edit box would be made as 1 general action in
the undo stack. The issue here is how this was done - on entering the edit mode
of the text box every action would be written to the primary undo stack, on
exiting the edit mode the whole undo stack was reverted (undo-ed to the state
at the entering) and instead on single action was written. The code doing this
was quite ugly and error prone - also not taking multiple views into account at
all (which is why it forced exit edit mode when anything was added to the undo
stack).

The solution to this was to add a completely new undo stack on entering the
edit mode and discarding it on exiting the edit mode and writing only one entry
to the primary undo stack. The ugly thing is that the primary undo stack in the
edit mode has now been exchanged with the a new - blank one, so you don't see
the entries in the primary one anymore in the UI and can't undo out of it
either. In general for the text boxes in impress this behavior is still kind-of
acceptable, but for the tables, this is more annoying (especially if you don't
know about it).

One thing that we could do is to still somehow combine the 2 undo stacks at the
UI level but still allow them to be independent.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to