tdf#119388 only enqueue events we actually process
shaves 10% of the time off, deleting columns
Change-Id: Id992572419a3c9a5693d37d7c5e5fe2da955bb23
Reviewed-on: https://gerrit.libreoffice.org/78029
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/svx/source/accessibility/AccessibleTextEventQueue.cxx b/svx/source/accessibility/AccessibleTextEventQueue.cxx
index 6a58611..177950a 100644
--- a/svx/source/accessibility/AccessibleTextEventQueue.cxx
+++ b/svx/source/accessibility/AccessibleTextEventQueue.cxx
@@ -49,7 +49,13 @@ namespace accessibility
void AccessibleTextEventQueue::Append( const SdrHint& rHint )
{
maEventQueue.push_back( new SdrHint( rHint ) );
// only enqueue the events we actually care about in
// AccessibleTextHelper_Impl::ProcessQueue(), because
// the cost of some events adds up.
auto eKind = rHint.GetKind();
if (eKind == SdrHintKind::BeginEdit
|| eKind == SdrHintKind::EndEdit)
maEventQueue.push_back( new SdrHint( rHint ) );
}
void AccessibleTextEventQueue::Append( const TextHint& rHint )
@@ -82,8 +88,9 @@ namespace accessibility
void AccessibleTextEventQueue::Clear()
{
// clear queue
while( !IsEmpty() )
PopFront();
for( auto p : maEventQueue)
delete p;
maEventQueue.clear();
}
} // end of namespace accessibility
diff --git a/svx/source/accessibility/AccessibleTextHelper.cxx b/svx/source/accessibility/AccessibleTextHelper.cxx
index 288d2c3..208f659 100644
--- a/svx/source/accessibility/AccessibleTextHelper.cxx
+++ b/svx/source/accessibility/AccessibleTextHelper.cxx
@@ -1134,6 +1134,8 @@ namespace accessibility
{
const SfxHint& rHint = *pHint;
// Note, if you add events here, you need to update the AccessibleTextEventQueue::Append
// code, because only the events we process here, are actually queued there.
try
{