sw/source/core/access/accpara.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 5251f4a13ad950e40d97ff24be23f11fb64bccd0
Author:     Michael Stahl <[email protected]>
AuthorDate: Thu Nov 27 20:34:38 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Fri Nov 28 12:36:43 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
    (cherry picked from commit 776662481583935ca148930de1e91ea499c53b3a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194737
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit e3a9530f294f9c978a46da43a4a1420644158984)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194756
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index d3de1b308f7f..0066c98f7c69 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -1836,7 +1836,7 @@ void SwAccessibleParagraph::_correctValues( const 
sal_Int32 nIndex,
         {
             if ( GetPortionData().IsIndexInFootnode(nIndex) )
             {
-                rValue.Value <<= sal_Int32(101);
+                rValue.Value <<= sal_Int16(101);
             }
             continue;
         }

Reply via email to