sw/source/core/access/accpara.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
New commits: commit 776662481583935ca148930de1e91ea499c53b3a Author: Michael Stahl <[email protected]> AuthorDate: Thu Nov 27 20:34:38 2025 +0100 Commit: Michael Stahl <[email protected]> CommitDate: Thu Nov 27 20:34:38 2025 +0100 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 diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx index f0bd0f0653d1..9e252909fd5b 100644 --- a/sw/source/core/access/accpara.cxx +++ b/sw/source/core/access/accpara.cxx @@ -2007,7 +2007,7 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex, { if ( GetPortionData().IsIndexInFootnode(nIndex) ) { - rValue.Value <<= sal_Int32(101); + rValue.Value <<= sal_Int16(101); } continue; }
