From de15196a5ccc49b4daa90e3bd25b3cac441f5d2a Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 29 Jun 2021 11:20:40 +0100 Subject: Related: tdf#143088 return early on notification from frozen editengine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit processing EE_NOTIFY_PROCESSNOTIFICATIONS from an EditEngine with an UpdateMode mode of false will just to on to cause AccessibleTextHelper_Impl::GetTextForwarder to throw an exception as a Frozen EditEngine is considered Invalid so return early instead Change-Id: I86f9647b7bf839cf3c7cf2f029be8c7c5aeef1f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118079 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- svx/source/dialog/weldeditview.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'svx') diff --git a/svx/source/dialog/weldeditview.cxx b/svx/source/dialog/weldeditview.cxx index e89cfe4e71c9..7dd58d31275f 100644 --- a/svx/source/dialog/weldeditview.cxx +++ b/svx/source/dialog/weldeditview.cxx @@ -908,6 +908,19 @@ WeldTextForwarder::~WeldTextForwarder() IMPL_LINK(WeldTextForwarder, NotifyHdl, EENotify&, rNotify, void) { + if (EditEngine* pEditEngine = m_rEditAcc.GetEditEngine()) + { + if (rNotify.eNotificationType == EE_NOTIFY_PROCESSNOTIFICATIONS + && !pEditEngine->GetUpdateMode()) + { + // tdf#143088 an UpdateMode of false will just to on to cause + // AccessibleTextHelper_Impl::GetTextForwarder to throw an + // exception as a Frozen EditEngine is considered Invalid so return + // early instead + return; + } + } + ::std::unique_ptr aHint = SvxEditSourceHelper::EENotification2Hint(&rNotify); if (aHint) m_rEditSource.GetBroadcaster().Broadcast(*aHint); -- cgit