SHA256
1
0
forked from pool/libreoffice
libreoffice/bsc1195881.patch
Danilo Spinella 9001d8b519 Accepting request 967376 from LibreOffice:7.3
- Fix bsc#1195881 - LO-L3: Bullets appear larger and green (instead of black)
  * bsc#1195881.patch

- Fix bsc#1196212 - LO-L3: Text with tabs appears quite different in
  Impress than in PowerPoint
  * bsc1196212.patch

  * fix_gtk_popover_on_3.20.patch

OBS-URL: https://build.opensuse.org/request/show/967376
OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=1008
2022-04-07 09:33:32 +00:00

88 lines
3.7 KiB
Diff

From e072e4149ffd4c07be1b6ded38e560f9cb635515 Mon Sep 17 00:00:00 2001
From: Sarper Akdemir <sarper.akdemir@collabora.com>
Date: Wed, 30 Mar 2022 17:02:30 +0300
Subject: [PATCH] tdf#148273 docx import: fix section break format leak to
bullets
Fixes RES_PARATR_LIST_AUTOFMT leaking into the next section.
Achieves this by resetting list related attributes on the cursor's
text node in DomainMapper_Impl::RemoveLastParagraph() after the
deletion of the paragraph.
Change-Id: Ib4d09c5f190b8b8fd3bdc119ddd57d91f353de2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132324
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
---
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index db77b87481c3..579e1752508a 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -502,6 +502,7 @@
#define UNO_NAME_SEPARATOR_LINE_IS_ON "SeparatorLineIsOn"
#define UNO_NAME_IS_SKIP_HIDDEN_TEXT "IsSkipHiddenText"
#define UNO_NAME_IS_SKIP_PROTECTED_TEXT "IsSkipProtectedText"
+#define UNO_NAME_RESET_PARAGRAPH_LIST_ATTRIBUTES "ResetParagraphListAttributes"
#define UNO_NAME_DOCUMENT_INDEX_MARKS "DocumentIndexMarks"
#define UNO_NAME_FOOTNOTE_IS_COLLECT_AT_TEXT_END "FootnoteIsCollectAtTextEnd"
#define UNO_NAME_FOOTNOTE_IS_RESTART_NUMBERING "FootnoteIsRestartNumbering"
diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx
index 72376372fe2f..067daf3d25f4 100644
--- a/sw/source/core/unocore/unoobj.cxx
+++ b/sw/source/core/unocore/unoobj.cxx
@@ -2118,6 +2118,15 @@ SwXTextCursor::setPropertyValue(
}
rUnoCursor.SetSkipOverProtectSections(bSet);
}
+ else if (rPropertyName == UNO_NAME_RESET_PARAGRAPH_LIST_ATTRIBUTES)
+ {
+ SwTextNode* pTextNode= GetPaM()->GetNode().GetTextNode();
+
+ if(pTextNode)
+ {
+ pTextNode->ResetAttr(RES_PARATR_LIST_BEGIN, RES_PARATR_LIST_END);
+ }
+ }
else
{
SwUnoCursorHelper::SetPropertyValue(rUnoCursor,
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index f261538a0f19..22f2be927f8d 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -3789,10 +3789,10 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len)
static_cast<ParagraphPropertyMap*>(xContext.get())->SetListId(-1);;
xContext->Erase(PROP_NUMBERING_LEVEL);
}
- m_pImpl->SetParaSectpr(false);
finishParagraph(bRemove, bNoNumbering);
if (bRemove)
m_pImpl->RemoveLastParagraph();
+ m_pImpl->SetParaSectpr(false);
}
else
{
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index f8700faee88c..e3d6f4c41952 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -717,6 +717,14 @@ void DomainMapper_Impl::RemoveLastParagraph( )
// delete
xCursor->setString(OUString());
+ // While removing paragraphs that contain section properties, reset list
+ // related attributes to prevent them leaking into the following section's lists
+ if (GetParaSectpr())
+ {
+ uno::Reference<beans::XPropertySet> XCursorProps(xCursor, uno::UNO_QUERY);
+ XCursorProps->setPropertyValue("ResetParagraphListAttributes", uno::Any());
+ }
+
// call to xCursor->setString possibly did remove final bookmark
// from previous paragraph. We need to restore it, if there was any.
if (sLastBookmarkName.getLength())
--
2.34.1