summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2024-12-11 14:24:17 +0100
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2024-12-18 22:55:40 +0100
commit054c2946a130a1acea91140f4e7c3e4a0f93a170 (patch)
tree2bfe01c749697133757fc7aafe9a52f5d2434aa5
parentd09d595347695315a3f909cdde74d7f64949f3ed (diff)
tdf#163634 Format empty paragraph if they have a bullet/numbering
Some optimization in commit 52abeff6d5836b29dbefe69f284bbd89f6672ae2 ignores paragph attributes if the paragraph is empty. But it is not empty if it has an active list. Change-Id: I8885d0f201fc48279263a3d41ec6d660b534ded2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178311 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit fdb13df0cb759e65e48bb65b1513e8add429d4d6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178553 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
-rw-r--r--editeng/inc/outleeng.hxx2
-rw-r--r--editeng/source/editeng/impedit2.cxx10
-rw-r--r--editeng/source/outliner/outleeng.cxx5
3 files changed, 16 insertions, 1 deletions
diff --git a/editeng/inc/outleeng.hxx b/editeng/inc/outleeng.hxx
index 56f7aa62485e..fe118d78ed92 100644
--- a/editeng/inc/outleeng.hxx
+++ b/editeng/inc/outleeng.hxx
@@ -69,6 +69,8 @@ public:
virtual tools::Rectangle GetBulletArea( sal_Int32 nPara ) override;
+ sal_Int16 GetDepth( sal_Int32 nPara ) const;
+
/// @returns state of the SdrCompatibilityFlag
std::optional<bool> GetCompatFlag(SdrCompatibilityFlag eFlag) const;
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 4fcf6e142a7a..f8d15dcdbee2 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -75,6 +75,7 @@
#include <memory>
#include <string_view>
#include <fstream>
+#include <outleeng.hxx>
using namespace ::com::sun::star;
@@ -4501,10 +4502,17 @@ bool ImpEditEngine::isInEmptyClusterAtTheEnd(ParaPortion& rPortion)
return false;
sal_Int32 nCurrent = rParagraphs.lastIndex();
+
while (nCurrent > 0 && rParagraphs.getRef(nCurrent).IsEmpty())
{
if (nCurrent == nPortion)
- return true;
+ {
+ OutlinerEditEng* pOutlEditEng{ dynamic_cast<OutlinerEditEng*>(mpEditEngine)};
+ if (pOutlEditEng)
+ return pOutlEditEng->GetDepth(nCurrent) < 0;
+ else
+ return true;
+ }
nCurrent--;
}
return false;
diff --git a/editeng/source/outliner/outleeng.cxx b/editeng/source/outliner/outleeng.cxx
index 67fcd0c4bd93..da297400382b 100644
--- a/editeng/source/outliner/outleeng.cxx
+++ b/editeng/source/outliner/outleeng.cxx
@@ -191,4 +191,9 @@ void OutlinerEditEng::SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet )
pOwner->UndoActionEnd();
}
+sal_Int16 OutlinerEditEng::GetDepth(sal_Int32 nPara) const
+{
+ return pOwner->GetDepth(nPara);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */