tdf#167362 sw: fix footnote hang with JAWS
When moving the cursor to a line with a footnote, JAWS tries to retrieve
the text attributes, gets an E_FAIL, but never gives up trying again.
The problem is that some entirely undocumented magic number is stuffed
into an uno::Any as `long` but the "CharEscapement" property is actually
`short` and thus reading the property in
AccessibleTextAttributeHelper::ConvertUnoToIAccessible2TextAttributes()
throws and this is caught by CAccTextBase::get_attributes() and E_FAIL
is returned.
> vcllo.dll!o3tl::doAccess<short>(const com::sun::star::uno::Any & any) Line 284
vcllo.dll!AccessibleTextAttributeHelper::ConvertUnoToIAccessible2TextAttributes(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & rUnoAttributes, IA2AttributeType eAttributeType) Line 271
vcllo.dll!AccessibleTextAttributeHelper::GetIAccessible2TextAttributes(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleText> xText, IA2AttributeType eAttributeType, long nOffset, long & rStartOffset, long & rEndOffset) Line 346
UAccCOM.dll!CAccTextBase::get_attributes(long offset, long * startOffset, long * endOffset, wchar_t * * textAttributes) Line 145
UAccCOM.dll!CAccText::get_attributes(long offset, long * startOffset, long * endOffset, wchar_t * * textAttributes) Line 54
FSDomNodeSymphony.dll!00007ff93f0fea12()
^ JAWS
Change-Id: I6c487f9d2db462b787034df3d5ba2f2822d14746
(cherry picked from commit 776662481583935ca148930de1e91ea499c53b3a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194737
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins
This commit is contained in:
@@ -1827,7 +1827,7 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex,
|
||||
{
|
||||
if ( GetPortionData().IsIndexInFootnode(nIndex) )
|
||||
{
|
||||
rValue.Value <<= sal_Int32(101);
|
||||
rValue.Value <<= sal_Int16(101);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user