Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2441
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/41/2441/1
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 <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
(cherry picked from commit 791a060bd1031c844a9a1b283689dee6a8a7ef77)
---
M sw/source/core/access/accmap.cxx
M sw/source/core/text/txtfrm.cxx
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 5e3a825..28107d7 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -896,10 +896,19 @@
// 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 1005969..1ccd660 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -921,6 +921,13 @@
}
}
+//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()
*************************************************************************/
@@ -1303,11 +1310,14 @@
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;
--
To view, visit https://gerrit.libreoffice.org/2441
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4842f217153fc90aa1dce75c3445053004c74536
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-3-6
Gerrit-Owner: Caolán McNamara <caolanm@redhat.com>
Gerrit-Reviewer: Fridrich Strba <fridrich@documentfoundation.org>
Context
- [PATCH libreoffice-3-6] Resolves: fdo#56031 RSID attr changes drop content change ev... · via Code Review
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.