sw/source/ui/app/docst.cxx | 9 +++++++++ 1 file changed, 9 insertions(+)
New commits: commit 6306c7befaa676df62272da7f3ddbcba54c5759c Author: Michael Stahl <mst...@redhat.com> Date: Wed Jan 16 16:23:30 2013 +0100 rhbz#818557: fix it differently: SwDocShell::_LoadStyles(): Try to prevent pushing of SfxShells from this function via EndAllAction and SwView::AttrChangedNotify() by setting a ridiculous pre-exising global bNoInterrupt variable. Change-Id: I9c91ca882891c8dfcd9dc08ba197233cfefddefd (cherry picked from commit beacee6fad46aa2c8fc813bb0150e5c7a5175b26) Reviewed-on: https://gerrit.libreoffice.org/1724 Reviewed-by: Miklos Vajna <vmik...@suse.cz> Tested-by: Miklos Vajna <vmik...@suse.cz> diff --git a/sw/source/ui/app/docst.cxx b/sw/source/ui/app/docst.cxx index 8f90a15..81ed1a7 100644 --- a/sw/source/ui/app/docst.cxx +++ b/sw/source/ui/app/docst.cxx @@ -31,6 +31,8 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/container/XNameAccess.hpp> +#include <comphelper/flagguard.hxx> + #include <hintids.hxx> #include <sfx2/app.hxx> #include <svl/whiter.hxx> @@ -86,6 +88,8 @@ #include <paratr.hxx> //#outline level,add by zhaojianwei +extern bool bNoInterrupt; // in mainwn.cxx + using namespace ::com::sun::star; void SwDocShell::StateStyleSheet(SfxItemSet& rSet, SwWrtShell* pSh) @@ -1223,6 +1227,11 @@ void SwDocShell::_LoadStyles( SfxObjectShell& rSource, sal_Bool bPreserveCurrent ((SwDocShell&)rSource).pDoc->SetFixFields(false, NULL); if( pWrtShell ) { + // rhbz#818557, fdo#58893: EndAllAction will call SelectShell(), + // which pushes a bunch of SfxShells that are not cleared + // (for unknown reasons) when closing the document, causing crash; + // setting bNoInterrupt appears to avoid the problem. + ::comphelper::FlagRestorationGuard g(bNoInterrupt, true); pWrtShell->StartAllAction(); pDoc->ReplaceStyles( *((SwDocShell&)rSource).pDoc ); pWrtShell->EndAllAction(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits