diff --git a/0001-Resolves-fdo-56031-RSID-attr-changes-drop-content-ch.patch b/0001-Resolves-fdo-56031-RSID-attr-changes-drop-content-ch.patch new file mode 100644 index 0000000..9082bbd --- /dev/null +++ b/0001-Resolves-fdo-56031-RSID-attr-changes-drop-content-ch.patch @@ -0,0 +1,86 @@ +From 791a060bd1031c844a9a1b283689dee6a8a7ef77 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 25 Feb 2013 16:55:07 +0000 +Subject: [PATCH] Resolves: fdo#56031 RSID attr changes drop content change + events + +So if we have an INVALID_ATTR event in the queue and receive +INVALID_CONTENT, drop the attr and replace it with invalid-content + +And anyway filter out the RSID change event from hitting the +a11y queue, humans don't care that this changed, it's just noise + +Change-Id: I4842f217153fc90aa1dce75c3445053004c74536 +(cherry picked from commit 8d08ccd5b84c121867d7b3102f9d10b26005c682) +Reviewed-on: https://gerrit.libreoffice.org/2401 +Reviewed-by: Fridrich Strba +Tested-by: Fridrich Strba +--- + sw/source/core/access/accmap.cxx | 9 +++++++++ + sw/source/core/text/txtfrm.cxx | 18 ++++++++++++++---- + 2 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx +index 4f737a8..714b37b 100644 +--- a/sw/source/core/access/accmap.cxx ++++ b/sw/source/core/access/accmap.cxx +@@ -887,10 +887,19 @@ void SwAccessibleMap::AppendEvent( const SwAccessibleEvent_Impl& rEvent ) + // POS_CHANGED event. + // Therefor, the event's type has to be adapted and the event + // has to be put at the end. ++ // ++ // fdo#56031 An INVALID_CONTENT event overwrites a INVALID_ATTR ++ // event and overwrites its flags + OSL_ENSURE( aEvent.GetType() != SwAccessibleEvent_Impl::CHILD_POS_CHANGED, + "invalid event combination" ); + if( aEvent.GetType() == SwAccessibleEvent_Impl::CARET_OR_STATES ) + aEvent.SetType( SwAccessibleEvent_Impl::INVALID_CONTENT ); ++ else if ( aEvent.GetType() == SwAccessibleEvent_Impl::INVALID_ATTR ) ++ { ++ aEvent.SetType( SwAccessibleEvent_Impl::INVALID_CONTENT ); ++ aEvent.SetStates( rEvent.GetAllStates() ); ++ } ++ + break; + case SwAccessibleEvent_Impl::POS_CHANGED: + // A pos changed event overwrites CARET_STATES (keeping its +diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx +index cebe0b5..d76c4fa 100644 +--- a/sw/source/core/text/txtfrm.cxx ++++ b/sw/source/core/text/txtfrm.cxx +@@ -912,6 +912,13 @@ static void lcl_ModifyOfst( SwTxtFrm* pFrm, xub_StrLen nPos, xub_StrLen nLen ) + } + } + ++//Related: fdo#56031 filter out attribute changes that don't matter for ++//humans/a11y to stop flooding the destination mortal with useless noise ++static bool isA11yRelevantAttribute(MSHORT nWhich) ++{ ++ return nWhich != RES_CHRATR_RSID; ++} ++ + /************************************************************************* + * SwTxtFrm::Modify() + *************************************************************************/ +@@ -1294,11 +1301,14 @@ void SwTxtFrm::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) + SwCntntFrm::Modify( pOld, pNew ); + } + +- // #i88069# +- ViewShell* pViewSh = getRootFrm() ? getRootFrm()->GetCurrShell() : 0; +- if ( pViewSh ) ++ if (isA11yRelevantAttribute(nWhich)) + { +- pViewSh->InvalidateAccessibleParaAttrs( *this ); ++ // #i88069# ++ ViewShell* pViewSh = getRootFrm() ? getRootFrm()->GetCurrShell() : 0; ++ if ( pViewSh ) ++ { ++ pViewSh->InvalidateAccessibleParaAttrs( *this ); ++ } + } + } + break; +-- +1.8.1.2 + diff --git a/libreoffice.spec b/libreoffice.spec index 07808a2..3a4bfb2 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -256,6 +256,7 @@ Patch22: 0001-rhbz-742780-Let-make-OPT_FLAGS-.-override-SDK-optimi.patch Patch23: 0001-Related-rhbz-902884-check-for-GetSelectedMasterPage-.patch Patch24: 0001-Resolves-fdo-61241-force-area-page-to-size-itself-fo.patch Patch25: 0001-Resolves-fdo-61656-use-order-and-orientation-combobo.patch +Patch26: 0001-Resolves-fdo-56031-RSID-attr-changes-drop-content-ch.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -1004,6 +1005,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch23 -p1 -b .rhbz-902884-check-for-GetSelectedMasterPage-.patch %patch24 -p1 -b .fdo-61241-force-area-page-to-size-itself-fo.patch %patch25 -p1 -b .fdo-61656-use-order-and-orientation-combobo.patch +%patch26 -p1 -b .fdo-56031-RSID-attr-changes-drop-content-ch.patch # TODO: check this # these are horribly incomplete--empty translations and copied english @@ -2075,6 +2077,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : - Related: rhbz#902884 check for NULL GetSelectedMasterPage - Resolves: fdo#61241 force area page to size itself - Resolves: fdo#61656 use order and orientation combobox +- Resolves: fdo#56031 RSID attr changes drop content changes * Thu Feb 28 2013 David Tardon - 1:4.0.1.2-1 - 4.0.1 rc2