svx/source/dialog/cuicharmap.cxx | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
New commits: commit 51f302eecd2bde5a4afb70e79af7ea933443cf37 Author: Andras Timar <[email protected]> AuthorDate: Sun Mar 1 18:10:56 2026 +0100 Commit: Miklos Vajna <[email protected]> CommitDate: Mon Mar 2 15:07:29 2026 +0100 Fix SIGABRT in SvxCharacterMap idle handler after dialog destruction The destructor only cancelled pending idle rendering events (m_nShowRenderIdleEvent, m_nSearchRenderIdleEvent) in non-LOKit mode, but scheduleShowSetBackgroundRendering() posts them unconditionally. In LOKit mode, closing the InsertSymbol dialog left dangling idle events that fired on a destroyed object, causing a pure virtual call and std::terminate. Cancel the idle events unconditionally in the destructor. Change-Id: Ia2f1a0fbee6bdd6cab8f710fdb287727b4caa074 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200725 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> diff --git a/svx/source/dialog/cuicharmap.cxx b/svx/source/dialog/cuicharmap.cxx index 6dedb13647f3..8a1360194dc6 100644 --- a/svx/source/dialog/cuicharmap.cxx +++ b/svx/source/dialog/cuicharmap.cxx @@ -1188,14 +1188,10 @@ void SvxCharacterMap::selectCharByCode(Radix radix) SvxCharacterMap::~SvxCharacterMap() { - if (!comphelper::LibreOfficeKit::isActive()) - { - if (m_nShowRenderIdleEvent) - Application::RemoveUserEvent(m_nShowRenderIdleEvent); - if (m_nSearchRenderIdleEvent) - Application::RemoveUserEvent(m_nSearchRenderIdleEvent); - } - + if (m_nShowRenderIdleEvent) + Application::RemoveUserEvent(m_nShowRenderIdleEvent); + if (m_nSearchRenderIdleEvent) + Application::RemoveUserEvent(m_nSearchRenderIdleEvent); } IMPL_LINK_NOARG(SvxCharacterMap, DecimalCodeChangeHdl, weld::Entry&, void)
