Kaydet (Commit) e6aa83ad authored tarafından Michael Stahl's avatar Michael Stahl Kaydeden (comit) Andras Timar

tdf#91602: sw: prevent recursive layout crash

SwCrsrShell::UpdateCrsr() calls SwTextFrm::GetCharRect(), which does
layout.  It happens that a SdrObject is moved around during layout,
which calls SwDrawContact::Changed(), which believes that there is
no layout active because there is no SwLayAction and
ViewShell::EndAction() has already been called, so we get recursive
layout-in-layout action.

Change-Id: Iad8df4910e3c661150bdf5ac7d777792e69a8f71
(cherry picked from commit 587006ca)
üst 6e3d3d63
...@@ -285,6 +285,10 @@ void SwCrsrShell::EndAction( const bool bIdleEnd, const bool DoSetPosX ) ...@@ -285,6 +285,10 @@ void SwCrsrShell::EndAction( const bool bIdleEnd, const bool DoSetPosX )
} }
return; return;
} }
else
{
eFlags |= SwCrsrShell::NOCALRECT; // tdf#91602 prevent recursive Action!
}
if ( !bIdleEnd ) if ( !bIdleEnd )
eFlags |= SwCrsrShell::SCROLLWIN; eFlags |= SwCrsrShell::SCROLLWIN;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment