From 69c46c56fe7c1f67ea89c3863fd19299fa335b65 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Thu, 10 Dec 2020 18:34:07 +0100 Subject: [PATCH] Preserve paragraph depth when dissolving. It turns out that makeSameLayout() does more than we want. Fixes bug #11981. --- src/Text.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Text.cpp b/src/Text.cpp index d1e0d9abd0..d227bd5cd5 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -1868,9 +1868,15 @@ bool Text::dissolveInset(Cursor & cur) */ DocumentClass const & tclass = cur.buffer()->params().documentClass(); if (inset_it.lastpos() == 1 - && !tclass.isPlainLayout(plist[0].layout()) - && !tclass.isDefaultLayout(plist[0].layout())) - cur.paragraph().makeSameLayout(plist[0]); + && !tclass.isPlainLayout(plist[0].layout()) + && !tclass.isDefaultLayout(plist[0].layout())) { + // Copy all parameters except depth. + Paragraph & par = cur.paragraph(); + par.setLayout(plist[0].layout()); + depth_type const dpth = par.getDepth(); + par.params() = plist[0].params(); + par.params().depth(dpth); + } pasteParagraphList(cur, plist, b.params().documentClassPtr(), b.errorList("Paste")); -- 2.39.5