Next methods:
AlignRange() => TMBLCR
BorderRange() => LTRBUDHV
DecorateFont() => BUSI
receive a string argument describing
what they have to do.
Those arguments become case-sensitive: only
upper-case characters are considered.
Now:
calc.DecorateFont(range, decoration := "BI")
may be written as:
calc.DecorateFont(range, _
decoration := "Bold+Italic")
which improves the readability of user's scripts.
The functionality is available both in
Basic and Python scripts.
To be considered in the 25.8 documentation.
Change-Id: If241f7aef2e8cbfa5b7dd240e26489790a8cca13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182232
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
Open the bugdoc, it should have a fake left paragraph border (a vertical
line), it shows up as horizontal.
This went wrong in commit 6c09c85ec3
(tdf#161779 DOCX import, drawingML: fix handling of translation for
lines, 2024-06-26) where it tried to model the ODF import, but there the
PolyPolygon and Transformation properties are set separately (in this
order) on the line shape, while oox/ code sets it via
SvxShape::setPropertyValues() and that leads to a wrong result.
Fix the problem by switching to set the two properties one by one (and
not in one go) at least for vertical line shapes, which leads to the
correct result.
Note that this is a minimal regression fix, a better (but more risky)
fix would be to improve SvxShape so setting all properties in one go
would lead to the same result. Tests which were failing while working on
this change:
- CppunitTest_oox_drawingml's testToplevelLineHorOffsetDOCX: manual
testing shows this is still OK.
- CppunitTest_sw_ooxmlexport3's testArrowPosition and
CppunitTest_svx_unit's testPageViewDrawLayerClip: restrict this to
entirely vertical lines for now.
Change-Id: Ia0e113d476d785d9320a142bdb449843f61d5dfe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182207
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
And set it in SwEditShell::SetRedlineFlags(). Existing usage of
RedlineFlags::On is not yet changed to work with
SwViewOption::IsRedlineRecordingOn() instead.
Change-Id: Ic7c549ef765ebb3667e3ca969fe0e02eb9f5d2b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182209
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
It corresponds to ulTrailSpace element in OOXML. This commit creates
the option in officecfg, UI, ODF, and implements its initial support
in layout.
Unresolved problems (pre-existing, not created here):
1. Short lines show underline unconditionally. In the unit test doc,
line 2 is such. In SwTextGuess::Guess, there is the "first check if
everything fits to line" shortcut, that skips SwHolePortion creation,
that causes the problem.
2. The first character of the trailing whitespace is underlined. It
is caused by AdjustCutPos only stepping back until there is a single
character left. But to fix that, we need to handle the "zero-length
portion plus some extra" case.
Change-Id: Icc84fcff3ae62ced198522a80b8ce6b0e12e3a3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182188
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
The biggest win here is the call to ShrinkToUsedDataArea, because
otherwise, we end up iterating over 16384 columns, most of which are
empty
Change-Id: I92f90b82b66b3a3997890cb22432482e10f7f960
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182178
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
See also
commit 91ee00bcc1
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 18:44:24 2025 +0100
valueset a11y: Drop ValueItemAcc::mbIsTransientChildrenDisabled
which did the same for ValueItemAcc.
Change-Id: Iac03d27aa67bc3379c51827131e92570fa1a11a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182197
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
See also
commit d144891269
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 18:33:56 2025 +0100
valueset a11y: Drop always false ValueSetItem::GetAccessible param
which basically did the same for ValueSetItem.
Change-Id: Ibb2b2d23926e618c3380a4b7aff0115fdea41a1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This is basically the same as
commit 921609b4b0
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 18:07:43 2025 +0100
valueset a11y: Simplify ValueItemAcc::getAccessibleIndexInParent
, but now for ThumbnailViewItemAcc. See the above commit for more
details.
Change-Id: I73cc73e195187fe74dac89e33cf8f23aa1ea8b22
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182185
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Same motivation as in
commit 8f0b672a1a
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 15:04:32 2025 +0100
valueset a11y: Rename ValueSetAcc::mpParent to mpValueSet
The object referred to by ThumbnailViewItemAcc::mpParent
is the ThumbnailViewItem for which this is the accessible
object, not any parent widget/accessible, so rename
to avoid confusion.
Also rename ThumbnailViewItemAcc::ParentDestroyed
accordingly.
Change-Id: I186b59a23ab6b9b18a713bdd6929594edda3a404
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182184
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Same motivation as in
commit 8f0b672a1a
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 15:04:32 2025 +0100
valueset a11y: Rename ValueSetAcc::mpParent to mpValueSet
The object referred to by ThumbnailViewAcc::mpParent
is the ThumbnailView for which this is the accessible
object, not any parent widget/accessible, so rename
to avoid confusion.
Change-Id: If188f8bce7e47223ac89c03e5300b89fd38e302c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182183
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
ThumbnailViewItemAcc::getLocationOnScreen is supposed
to return the position of the object itself (not its parent)
in screen/global coordinates, so the
// get position of the accessible parent in screen coordinates
comment is rather misleading.
Change-Id: Iaf371b7b7644b2f08831588baa7f306b285fb46e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182182
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
So far, the ValueItemAcc objects created by
ValueSet were never disposed.
While this is a preexisting issue, this started triggering
crashes with the qt6 VCL plugin after
Change-Id: If448008b3a6dc7b22a06b6ed551b08a40b2d5de3
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Feb 25 12:14:24 2025 +0100
valueset a11y: Use OAccessibleComponentHelper for ValueItemAcc
as described in its commit message.
Fix this by disposing the objects in ValueSet::ImplDeleteItems,
and not just sending an AccessibleEventId::CHILD event.
Adjust the logic to be independent of whether the item is visible,
but instead do this for all items that have an associated ValueItemAcc.
Add a new `bCreate` param to ValueSetItem::GetAccessible and pass
false here to avoid creating new ones.
In the ValueSet dtor, call `ImplDeleteItems` before invalidating
the accessible object, as it may still be needed in `ImplDeleteItems`
to send the events.
This fixes the crash on exit for the scenario described in the
above-mentioned commit.
Backtrace of such a crash/assert:
soffice.bin: /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:142: bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &): Assertion `rClients.end() != rPos && "AccessibleEventNotifier::implLookupClient: invalid client id " "(did you register your client?)!"' failed.
[New Thread 9546.9547]
[New Thread 9546.9548]
[New Thread 9546.9549]
[New Thread 9546.9557]
Thread 1 received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(rr) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007ff8c289de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78
#2 0x00007ff8c2849d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007ff8c28324f0 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007ff8c2832418 in __assert_fail_base
(fmt=0x7ff8c29b6ca0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ff8c0f27cc6 "rClients.end() != rPos && \"AccessibleEventNotifier::implLookupClient: invalid client id \" \"(did you register your client?)!\"", file=file@entry=0x7ff8c0f360b9 "/home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx", line=line@entry=142, function=function@entry=0x7ff8c0efd262 "bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &)") at ./assert/assert.c:96
#5 0x00007ff8c2842612 in __assert_fail
(assertion=0x7ff8c0f27cc6 "rClients.end() != rPos && \"AccessibleEventNotifier::implLookupClient: invalid client id \" \"(did you register your client?)!\"", file=0x7ff8c0f360b9 "/home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx", line=142, function=0x7ff8c0efd262 "bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &)") at ./assert/assert.c:105
#6 0x00007ff8c10eb4c8 in (anonymous namespace)::implLookupClient (nClient=24, rPos=...) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:140
#7 0x00007ff8c10eb938 in comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing (_nClient=24, _rxEventSource=uno::Reference to (ValueItemAcc *) 0x558da6f7a220)
at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:185
#8 0x00007ff8c10e751d in comphelper::OCommonAccessibleComponent::disposing (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:61
#9 0x00007ff8c0b3cee0 in cppu::WeakComponentImplHelperBase::dispose (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:104
#10 0x00007ff8bb84a0c5 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::dispose (this=0x558da6f7a220)
at include/cppuhelper/compbase.hxx:90
#11 0x00007ff8c0b3cc07 in cppu::WeakComponentImplHelperBase::release (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:79
#12 0x00007ff8bb84d6c5 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::release (this=0x558da6f7a220)
at include/cppuhelper/compbase.hxx:86
#13 0x00007ff8bb8e0b95 in cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>::release (this=0x558da6f7a220) at include/cppuhelper/implbase.hxx:171
#14 0x00007ff8bb97d595 in cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, com::sun::star::accessibility::XAccessible>::release (this=0x558da6f7a220) at include/cppuhelper/implbase.hxx:171
#15 0x00007ff8af309baa in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>::~Reference (this=0x558da6f7a428) at include/com/sun/star/uno/Reference.hxx:114
#16 0x00007ff8af321bad in QtAccessibleWidget::~QtAccessibleWidget (this=0x558da6f7a3e0) at vcl/inc/qt6/../qt5/QtAccessibleWidget.hxx:39
#17 0x00007ff8af321c49 in QtAccessibleWidget::~QtAccessibleWidget (this=0x558da6f7a3e0) at vcl/inc/qt6/../qt5/QtAccessibleWidget.hxx:39
#18 0x00007ff8ad8faf48 in QAccessibleCache::deleteInterface (this=0x558d9fbd0ac0, id=2147483692, obj=0x558da6eecdb0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:173
#19 0x00007ff8ad8fad78 in QAccessibleCache::~QAccessibleCache (this=0x558d9fbd0ac0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:31
#20 0x00007ff8ad8faf8d in QAccessibleCache::~QAccessibleCache (this=0x558d9fbd0ac0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:29
#21 0x00007ff8ad8fb027 in cleanupAccessibleCache () at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:24
#22 0x00007ff8ae44a792 in qt_call_post_routines () at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:343
#23 0x00007ff8ac3ddee4 in QApplication::~QApplication (this=0x558d9e8c76c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:667
#24 0x00007ff8ac3de29d in QApplication::~QApplication (this=0x558d9e8c76c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:663
#25 0x00007ff8af3d63b8 in std::default_delete<QApplication>::operator() (this=0x558d9e955870, __ptr=0x558d9e8c76c0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:93
#26 0x00007ff8af3d7da8 in std::__uniq_ptr_impl<QApplication, std::default_delete<QApplication> >::reset (this=0x558d9e955870, __p=0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:205
#27 0x00007ff8af3cfcbd in std::unique_ptr<QApplication, std::default_delete<QApplication> >::reset (this=0x558d9e955870, __p=0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:504
#28 0x00007ff8af3c7b34 in QtInstance::~QtInstance (this=0x558d9e9556e0) at vcl/qt6/../qt5/QtInstance.cxx:323
#29 0x00007ff8af3c7c29 in QtInstance::~QtInstance (this=0x558d9e9556e0) at vcl/qt6/../qt5/QtInstance.cxx:320
#30 0x00007ff8b9bb1c54 in DestroySalInstance (pInst=0x558d9e9556f0) at /home/michi/development/git/libreoffice/vcl/source/app/salplug.cxx:361
#31 0x00007ff8b9ca1509 in DeInitVCL () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:629
#32 0x00007ff8b9c9fa4f in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:241
#33 0x00007ff8b9ca15e9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
#34 0x00007ff8c2b9f4ba in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
#35 0x0000558d9330ba6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
#36 0x0000558d9330ba47 in main (argc=2, argv=0x7ffd2669fb48) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49
Change-Id: Ifa7e18393edcc1889bcb390fa453c611d9345bdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182174
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Similar to how
Change-Id: I59643f970a54a585c9ec1f8a5ca915014f1e2991
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Feb 25 11:51:40 2025 +0100
valueset a11y: Use OAccessibleComponentHelper for ValueSetAcc
did for ValueSetAcc, also derive
from OAccessibleComponentHelper for ValueItemAcc
to make use of the logic already implemented there
instead of having to implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.
ValueItemAcc::getBounds implements what is needed
to implement OAccessibleComponentHelper::implGetBounds,
so rename the method (and drop the mutex guard from that
method, as callers of that method in the base class take
care of that).
Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the OAccessibleComponentHelper base class.
No change in behavior intended or observed initially
when testing this with Accerciser and Orca and the qt6
VCL plugin for the scenario described in
commit cfe63bf67f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 17:17:34 2025 +0100
valueset a11y: Fix reported position
However, when closing LO, this now triggers an assertion:
soffice.bin: /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:142: bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &): Assertion `rClients.end() != rPos && "AccessibleEventNotifier::implLookupClient: invalid client id " "(did you register your client?)!"' failed.
This is due to a preexisting issue that ValuItemAcc
objects are not disposed that will be fixed separately
in upcoming commit
Change-Id: Ifa7e18393edcc1889bcb390fa453c611d9345bdc
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Feb 25 12:33:21 2025 +0100
valueset a11y: Dispose ValueItemAcc objects
The issue didn't trigger a crash on exit before
this commit because AccessibleEventNotifier and
the static `ClientMap gaClients` it uses weren't
used before with ValueSetAcc's custom a11y event
handling.
(Considering to get rid of the static client map
might be something to further consider in the future,
but I think that makes most sense once more classes
currently using AccessibleEventNotifier directly
have been refactored to use OAccessibleComponentHelper).
The fact that Orca currently doesn't announce the
valueset items when moving focus between them is independent
of this commit. Suggested upstream fix to make it work:
https://gitlab.gnome.org/GNOME/orca/-/merge_requests/236
Change-Id: If448008b3a6dc7b22a06b6ed551b08a40b2d5de3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182173
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Similar to how
commit 7107db3fe7
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Jan 24 18:57:58 2025 +0100
toolkit a11y: Use OAccessibleComponentHelper for grid control
did for AccessibleGridControlBase, also derive
from OAccessibleComponentHelper for ValueSetAcc
to make use of the logic already implemented there
instead of having to implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.
ValueSetAcc::getBounds implements what is needed
to implement OAccessibleComponentHelper::implGetBounds,
so rename the method (and drop the mutex guard from that
method, as callers of that method in the base class take
care of that).
Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the OAccessibleComponentHelper base class.
No change in behavior intended or observed when
testing this with Accerciser and Orca and the qt6
VCL plugin for the scenario described in
commit cfe63bf67f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Feb 24 17:17:34 2025 +0100
valueset a11y: Fix reported position
Change-Id: I59643f970a54a585c9ec1f8a5ca915014f1e2991
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182158
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The method returns whether any accessible listeners are registered.
The main motivation is to to have an equivalent for the current
ValueSetAcc::HasAccessibleListeners implementation, in preparation
of making ValueSetAcc an OAccessibleComponentHelper subclass (to
reuse existing OAccessibleComponentHelper logic instead of having
yet another custom implementation in ValueSetAcc).
Change-Id: Id3ad3ba06a9d4daaa259e18641d8ad4492edfb63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182157
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The flag m_bIsActualParagraphFramed is reset only in
ExecuteFrameConversion() which is called at the end of the paragraph
that follows the one that is in the frame, so all redlines in that
paragraph were erroneously moved to the frame; reset it when a paragraph
ends, if the next paragraph is also in the frame it can set the flag
again.
(regression from commit e8bae67b3d)
Change-Id: I75a18d2e7b600737958e984c135ebf6201e6f979
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182181
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
In this patch, I have added ~100 new incorrect Persian (Farsi) words
and removed ~1000 words that were not incorrect.
The removed words were spelling variants and can not be considered
incorrect.
Change-Id: I0d9ee8e34d70e144e8ab9d920c3d9dbc4242841d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181982
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Skip top margin of the paragraph of the inline heading by
direct paragraph formatting to fix DOCX layout interoperability.
Regression from commit 56588663a0
"tdf#131728 sw inline heading: fix DOCX paragraph layout
interoperability".
Change-Id: I9fb485b08b4f3fd7506562e636151ccb6ee7b0a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182138
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Formulae with style separator lost their centered position because
of the newly introduced Inline Heading frame around the object.
Limit Inline Heading frames only for paragraphs with text content.
Regression from commit 49765a9e7b
"tdf#48459 tdf#131728 sw inline heading: new frame style: fix DOCX export".
Change-Id: Ibabc0e045045f96dbbe8cfb31f9ce319189ee72a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182127
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
SwRedlineItr::Seek() assumes that redlines don't overlap, but sometimes
they do, at least a ParagraphFormat and a Delete redline can overlap
(unsure if that is a good idea) when imported from DOCX.
Change-Id: Ic13080bfe8c9910ffef44f3e48d11c7f852427ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181961
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Unfortunately SwCursorShell::GetContentAtPos() can only report 1 redline
for a given position; in case there is a format and a insert/delete
redline at the same position, the latter is more important.
This is then used in SwEditWin::RequestHelp() to display a tooltip if
the user moves the mouse cursor over a redline.
Change-Id: I32af7a154873e3fa5775a711980bb3dab3e307ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181960
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>