From b846847121a29b8acd9d48ef1a795ea3b9d6d974 Mon Sep 17 00:00:00 2001 From: Jacobo Aragunde PĂ©rez Date: Thu, 19 Jun 2014 11:27:04 +0200 Subject: fdo#71558: Notify mispelled word to accessibility This patch modifies the spell checking code to trigger an invalidation of the accessible paragraph attributes when a mistake is detected, so the 'text-attributes-changed' event is released. Notice that 'text-spelling' is not an actual attribute of the text for LibreOffice, that's why this didn't work in first place. Finally, notice too that when the user disables the automatic spell checking, no 'text-attributes-changed' event is released, and when it is enabled again it will only release 'text-attributes-changed' events in case some of the newly typed text is misspelled. Change-Id: Ie792f040d84010cadcd41486d948a5e29421228f --- sw/source/core/txtnode/txtedt.cxx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'sw') diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index ca536da9305f..6c2adee3c350 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -1293,7 +1294,7 @@ SwRect SwTxtFrm::_AutoSpell( const SwCntntNode* pActNode, const SwViewOption& rV bool bFresh = nBegin < nEnd; - if( nBegin < nEnd ) + if( bFresh ) { //! register listener to LinguServiceEvents now in order to get //! notified about relevant changes in the future @@ -1375,6 +1376,11 @@ SwRect SwTxtFrm::_AutoSpell( const SwCntntNode* pActNode, const SwViewOption& rV if( nChgStart < nChgEnd ) { aRect = lcl_CalculateRepaintRect( *this, nChgStart, nChgEnd ); + + // fdo#71558 notify mispelled word to accessibility + SwViewShell* pViewSh = getRootFrm() ? getRootFrm()->GetCurrShell() : 0; + if( pViewSh ) + pViewSh->InvalidateAccessibleParaAttrs( *this ); } pNode->GetWrong()->SetInvalid( nInvStart, nInvEnd ); -- cgit v1.2.3