I gone deeper in this issue, and it not depends on Track changes Show/Hide.
Undo has RedlinesGuard, which sets show/hide to value, that been when Undo action created. So Undo
works fine and I not going to purge Undo stack.
I think the problem is created by sw::DocumentRedlineManager::CompressRedlines
(https://opengrok.libreoffice.org/xref/core/sw/source/core/doc/DocumentRedlineManager.cxx#1792). As
name states it compress redlines (merges two neighbor redlines if they have same author, type,
second redline starts where first ends second.mark==first.point and so on). During compression it
modifies indexes and Undo crushes LO.
Now I’m investigating CompresRedlines further. I think it can be changed so it merges only two
neighbor redlines in the same node and not merge cross-node. Or maybe it should be completely
removed, as it only merges redlines if they’ve been created in the same minute!
(https://opengrok.libreoffice.org/xref/core/sw/source/core/doc/docredln.cxx#946)
So chances that two redlines will be merged are very low.
------ Исходное сообщение ------
От: "Miklos Vajna" <vmiklos@collabora.co.uk<mailto:vmiklos@collabora.co.uk>>
Кому: libreoffice@lists.freedesktop.org<mailto:libreoffice@lists.freedesktop.org>
Отправлено: 05.01.2018 18:35:12
Тема: Re: Bug 83260
Hi,
On Thu, Jan 04, 2018 at 09:45:14AM +0800, "Matthew J. Francis"
<mjay.francis@gmail.com<mailto:mjay.francis@gmail.com>> wrote:
I use tracked changes on a regular basis, and would much rather this be
treated as "maybe difficult but important to get right" than "too hard, so
don't bother"
Perhaps a middle ground is to give up undo/redo only for the subset when
we know we would crash anyway? And sure, if somebody has the
time/motivation to look at the root cause of the crash (currently I
don't), that's even better.
Regards,
Miklos
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.