bin/merge-app-bundles                                |    2 
 comphelper/source/misc/storagehelper.cxx             |   13 
 drawinglayer/source/processor2d/vclprocessor2d.cxx   |    5 
 package/inc/ZipFile.hxx                              |    4 
 package/source/zipapi/ZipFile.cxx                    |   30 
 package/source/zippackage/ZipPackage.cxx             |    6 
 readlicense_oo/license/CREDITS.fodt                  | 3586 +++++++++----------
 sc/source/ui/undo/undobase.cxx                       |    6 
 svgio/qa/cppunit/SvgImportTest.cxx                   |   13 
 svgio/qa/cppunit/data/tdf161985.svg                  |   14 
 svgio/source/svgreader/svgstyleattributes.cxx        |   37 
 sw/qa/core/text/data/tdf161990-subscripts.fodt       |   44 
 sw/qa/core/text/text.cxx                             |   58 
 sw/qa/extras/layout/data/field_hide_section.fodt     |  193 +
 sw/qa/extras/layout/data/fly_hidden_paragraph.fodt   |  127 
 sw/qa/extras/layout/layout.cxx                       |  105 
 sw/source/core/layout/trvlfrm.cxx                    |    6 
 ucb/source/ucp/tdoc/tdoc_datasupplier.cxx            |    4 
 vcl/osx/DataFlavorMapping.cxx                        |    4 
 vcl/osx/a11yrolehelper.mm                            |    6 
 vcl/osx/a11ywrapper.mm                               |    9 
 vcl/osx/salmenu.cxx                                  |    6 
 vcl/source/filter/ieps/ieps.cxx                      |   12 
 wizards/source/sfdocuments/SF_Document.xba           |    4 
 writerfilter/qa/cppunittests/dmapper/PropertyMap.cxx |   37 
 writerfilter/source/dmapper/DomainMapper_Impl.cxx    |   22 
 writerfilter/source/dmapper/PropertyMap.cxx          |    5 
 27 files changed, 2536 insertions(+), 1822 deletions(-)

New commits:
commit e598a34ed14eaf0ada5edf664547d9484844a987
Author:     Justin Luth <jl...@mail.com>
AuthorDate: Wed Jul 10 19:26:20 2024 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:43 2024 +0200

    tdf#160139 sw RTF paste: don't empty headers/footers
    
    Regression from quikee's 24.2
    commit 4b0fa253a4540f5461397815d290586f9ddabe61
        tdf#136472 adjust ooxml import to handle first header/footer
    
    RTF paste is particularly nasty because it calls CloseSectionGroup,
    which is rather strange for just pasting some characters...
    
    Fix the problem by leaving the paste alone:
    we already omit a number of actions in this case,
    and was similarly done initially by quikee in copyHeaderFooter.
    
    setHeaderFooterProperties() was newly added by quikee,
    so relatively safe to start avoiding on paste.
    
    make CppunitTest_sw_writerfilter_dmapper \
        CPPUNIT_TEST_NAME=testPasteHeaderEmptied
    
    Change-Id: Iad997481a75bb971f9e71373175134cbec9aa7d9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170328
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    Tested-by: Jenkins
    (cherry picked from commit aaf93cd9629acd476284a4933a656ddd188a80aa)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170349
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170386
    Reviewed-by: Justin Luth <jl...@mail.com>

diff --git a/writerfilter/qa/cppunittests/dmapper/PropertyMap.cxx 
b/writerfilter/qa/cppunittests/dmapper/PropertyMap.cxx
index 2952f1f93302..e06ee5236e0d 100644
--- a/writerfilter/qa/cppunittests/dmapper/PropertyMap.cxx
+++ b/writerfilter/qa/cppunittests/dmapper/PropertyMap.cxx
@@ -175,6 +175,43 @@ CPPUNIT_TEST_FIXTURE(Test, testPasteHeaderDisable)
     // Then make sure the header stays on:
     CPPUNIT_ASSERT(xStyle->getPropertyValue("HeaderIsOn").get<bool>());
 }
+
+CPPUNIT_TEST_FIXTURE(Test, testPasteHeaderEmptied)
+{
+    // Given an empty document with a turned on footer with content:
+    loadFromFile(u"page-break-footer-table.docx");
+    uno::Reference<style::XStyleFamiliesSupplier> 
xStyleFamiliesSupplier(mxComponent,
+                                                                         
uno::UNO_QUERY);
+    uno::Reference<container::XNameAccess> xStyleFamilies
+        = xStyleFamiliesSupplier->getStyleFamilies();
+    uno::Reference<container::XNameAccess> xStyleFamily(
+        xStyleFamilies->getByName(u"PageStyles"_ustr), uno::UNO_QUERY);
+    uno::Reference<beans::XPropertySet> 
xStyle(xStyleFamily->getByName(u"Standard"_ustr),
+                                               uno::UNO_QUERY);
+
+    // When pasting RTF content:
+    uno::Reference<text::XTextDocument> xTextDocument(mxComponent, 
uno::UNO_QUERY);
+    uno::Reference<text::XTextRange> xText = xTextDocument->getText();
+    uno::Reference<text::XTextRange> xBodyEnd = xText->getEnd();
+    uno::Reference<document::XFilter> xFilter(
+        
m_xSFactory->createInstance(u"com.sun.star.comp.Writer.RtfFilter"_ustr), 
uno::UNO_QUERY);
+    uno::Reference<document::XImporter> xImporter(xFilter, uno::UNO_QUERY);
+    xImporter->setTargetDocument(mxComponent);
+    std::unique_ptr<SvStream> pStream(new SvMemoryStream);
+    pStream->WriteOString("{\rtf1 paste}");
+    pStream->Seek(0);
+    uno::Reference<io::XStream> xStream(new 
utl::OStreamWrapper(std::move(pStream)));
+    uno::Sequence aDescriptor{ 
comphelper::makePropertyValue(u"InputStream"_ustr, xStream),
+                               
comphelper::makePropertyValue(u"InsertMode"_ustr, true),
+                               
comphelper::makePropertyValue(u"TextInsertModeRange"_ustr,
+                                                             xBodyEnd) };
+    CPPUNIT_ASSERT(xFilter->filter(aDescriptor));
+
+    // Then make sure the header retains its contents:
+    uno::Reference<text::XTextRange> 
xFooterText(xStyle->getPropertyValue(u"FooterText"_ustr),
+                                                 uno::UNO_QUERY);
+    CPPUNIT_ASSERT_EQUAL(u"Odd page footer"_ustr, xFooterText->getString());
+}
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx 
b/writerfilter/source/dmapper/PropertyMap.cxx
index d3263ac5ba55..62707f2c4d10 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -520,7 +520,8 @@ void 
SectionPropertyMap::removeXTextContent(uno::Reference<text::XText> const& r
  */
 void SectionPropertyMap::setHeaderFooterProperties(DomainMapper_Impl& rDM_Impl)
 {
-    if (!m_aPageStyle.is())
+    // do not alter header/footer during copy/paste
+    if (!m_aPageStyle.is() || !rDM_Impl.IsNewDoc())
         return;
 
     bool bHasHeader = false;
@@ -583,7 +584,7 @@ void 
SectionPropertyMap::setHeaderFooterProperties(DomainMapper_Impl& rDM_Impl)
         m_aPageStyle->setPropertyValue(sFirstIsShared, 
uno::Any(!m_bTitlePage));
 
     bool bHadFirstHeader = m_bHadFirstHeader && m_bTitlePage;
-    if (bHasHeader && !bHadFirstHeader && !m_bHadLeftHeader && 
!m_bHadRightHeader && rDM_Impl.IsNewDoc())
+    if (bHasHeader && !bHadFirstHeader && !m_bHadLeftHeader && 
!m_bHadRightHeader)
     {
         m_aPageStyle->setPropertyValue(sHeaderIsOn, uno::Any(false));
     }
commit c4c1848bd686685755714925a54c52f6d8d0a7bc
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Thu Jul 11 14:55:26 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:43 2024 +0200

    sw: layout: ShrinkFrame() may do nothing for layout frames...
    
    ... which may cause empty pages, so explicitly set the height to 0.
    
    (regression from commit 2dce213ce9f399c6ce1a3e928f34fa27988fa833)
    
    Change-Id: Ife5c2873b375431d2dd90c9b7e8b3b8c40a9cf7f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170383
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit e2d82681a8055d0d4e7007b8dacf38f5675bc70f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170356
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>

diff --git a/sw/qa/extras/layout/data/field_hide_section.fodt 
b/sw/qa/extras/layout/data/field_hide_section.fodt
new file mode 100644
index 000000000000..9d00bf6f8c4c
--- /dev/null
+++ b/sw/qa/extras/layout/data/field_hide_section.fodt
@@ -0,0 +1,193 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<office:document xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:dc="http://purl.org/dc/eleme
 nts/1.1/" xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
 xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0
 " xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; office:version="1.2" 
office:mimetype="application/vnd.oasis.opendocument.text">
+ 
<office:meta><meta:creation-date>2024-07-11T15:14:52.010777485</meta:creation-date><meta:editing-duration>PT2M3S</meta:editing-duration><meta:editing-cycles>2</meta:editing-cycles><meta:generator>CIB_OfficeDev/6.4.0.26$Linux_X86_64
 
LibreOffice_project/c02dfb55f9962adebc1d2eb5248abd10c63e7bbe</meta:generator><dc:date>2024-07-11T15:16:53.863806593</dc:date><meta:document-statistic
 meta:table-count="1" meta:image-count="0" meta:object-count="0" 
meta:page-count="3" meta:paragraph-count="1" meta:word-count="1" 
meta:character-count="1" meta:non-whitespace-character-count="1"/></office:meta>
+ <office:font-face-decls>
+  <style:font-face style:name="Liberation Serif" svg:font-family="'Liberation 
Serif'" style:font-family-generic="roman" style:font-pitch="variable"/>
+  <style:font-face style:name="Arial Unicode MS" svg:font-family="'Arial 
Unicode MS'" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="Noto Serif CJK SC" svg:font-family="'Noto Serif 
CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" 
draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" 
draw:start-line-spacing-vertical="0.283cm" 
draw:end-line-spacing-horizontal="0.283cm" 
draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" 
style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" 
fo:country="DE" style:letter-kerning="true" style:font-name-asian="Noto Serif 
CJK SC" style:font-size-asian="10.5pt" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="Arial Unicode MS" 
style:font-size-complex="12pt" style:language-complex="hi" 
style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:orphans="2" fo:widows="2" 
fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="hanging" style:line-break="strict" 
style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
+   <style:text-properties style:use-window-font-color="true" 
style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="de" 
fo:country="DE" style:letter-kerning="true" style:font-name-asian="Noto Serif 
CJK SC" style:font-size-asian="10.5pt" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="Arial Unicode MS" 
style:font-size-complex="12pt" style:language-complex="hi" 
style:country-complex="IN" fo:hyphenate="false" 
fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" 
loext:hyphenation-no-caps="false"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" 
style:class="text"/>
+  <style:style style:name="Table_20_Contents" style:display-name="Table 
Contents" style:family="paragraph" style:parent-style-name="Standard" 
style:class="extra">
+   <style:paragraph-properties fo:orphans="0" fo:widows="0" 
text:number-lines="false" text:line-number="0"/>
+  </style:style>
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:notes-configuration text:note-class="footnote" style:num-format="1" 
text:start-value="0" text:footnotes-position="page" 
text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" 
text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" 
text:offset="0.499cm" style:num-format="1" text:number-position="left" 
text:increment="5"/>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="Table1" style:family="table">
+   <style:table-properties style:width="6.5cm" table:align="margins"/>
+  </style:style>
+  <style:style style:name="Table1.A" style:family="table-column">
+   <style:table-column-properties style:column-width="3.249cm" 
style:rel-column-width="32767*"/>
+  </style:style>
+  <style:style style:name="Table1.B" style:family="table-column">
+   <style:table-column-properties style:column-width="3.251cm" 
style:rel-column-width="32768*"/>
+  </style:style>
+  <style:style style:name="Table1.A1" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.5pt 
solid #000000" fo:border-right="none" fo:border-top="0.5pt solid #000000" 
fo:border-bottom="0.5pt solid #000000"/>
+  </style:style>
+  <style:style style:name="Table1.B1" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border="0.5pt solid 
#000000"/>
+  </style:style>
+  <style:style style:name="Table1.A2" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.5pt 
solid #000000" fo:border-right="none" fo:border-top="none" 
fo:border-bottom="0.5pt solid #000000"/>
+  </style:style>
+  <style:style style:name="Table1.B2" style:family="table-cell">
+   <style:table-cell-properties fo:padding="0.097cm" fo:border-left="0.5pt 
solid #000000" fo:border-right="0.5pt solid #000000" fo:border-top="none" 
fo:border-bottom="0.5pt solid #000000"/>
+  </style:style>
+  <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Standard">
+   <style:text-properties/>
+  </style:style>
+  <style:style style:name="P2" style:family="paragraph" 
style:parent-style-name="Table_20_Contents">
+   <style:text-properties/>
+  </style:style>
+  <style:style style:name="Sect1" style:family="section">
+   <style:section-properties style:editable="false">
+    <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+   </style:section-properties>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="10.5cm" 
fo:page-height="14.801cm" style:num-format="1" 
style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" 
fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" 
style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" 
style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" 
style:layout-grid-mode="none" style:layout-grid-ruby-below="false" 
style:layout-grid-print="false" style:layout-grid-display="false" 
style:footnote-max-height="0cm">
+    <style:footnote-sep style:width="0.018cm" 
style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" 
style:line-style="solid" style:adjustment="left" style:rel-width="25%" 
style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style/>
+   <style:footer-style/>
+  </style:page-layout>
+  <number:number-style style:name="N0">
+   <number:number number:min-integer-digits="1"/>
+  </number:number-style>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Standard" style:page-layout-name="pm1"/>
+ </office:master-styles>
+ <office:body>
+  <office:text text:use-soft-page-breaks="true">
+   <text:variable-decls>
+    <text:variable-decl office:value-type="float" text:name="Foo"/>
+   </text:variable-decls>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" 
text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:p text:style-name="Standard"><text:variable-set text:name="Foo" 
office:value-type="float" office:value="0" 
style:data-style-name="N0">0</text:variable-set></text:p>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:p text:style-name="Standard"/>
+   <text:section text:style-name="Sect1" text:name="Section1" 
text:condition="ooow:Foo EQ 1" text:is-hidden="false" text:display="condition">
+    <text:p text:style-name="P1">Abc</text:p>
+    <table:table table:name="Table1" table:style-name="Table1">
+     <table:table-column table:style-name="Table1.A"/>
+     <table:table-column table:style-name="Table1.B"/>
+     <text:soft-page-break/>
+     <table:table-row>
+      <table:table-cell table:style-name="Table1.A1" 
office:value-type="string">
+       <text:p text:style-name="P2">d</text:p>
+      </table:table-cell>
+      <table:table-cell table:style-name="Table1.B1" 
office:value-type="string">
+       <text:p text:style-name="P2">e</text:p>
+      </table:table-cell>
+     </table:table-row>
+     <table:table-row>
+      <table:table-cell table:style-name="Table1.A2" 
office:value-type="string">
+       <text:p text:style-name="P2">f</text:p>
+      </table:table-cell>
+      <table:table-cell table:style-name="Table1.B2" 
office:value-type="string">
+       <text:p text:style-name="P2">g</text:p>
+      </table:table-cell>
+     </table:table-row>
+    </table:table>
+    <text:p text:style-name="P1"><text:soft-page-break/>xyz</text:p>
+   </text:section>
+   <text:p text:style-name="P1"/>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 25d07c7348e3..f877d672b0b0 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -21,6 +21,7 @@
 #include <IDocumentLayoutAccess.hxx>
 #include <IDocumentRedlineAccess.hxx>
 #include <unoframe.hxx>
+#include <fldmgr.hxx>
 
 /// Test to assert layout / rendering result of Writer.
 class SwLayoutWriter : public SwModelTestBase
@@ -805,6 +806,50 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, 
testFlyHiddenParagraph)
     Scheduler::ProcessEventsToIdle();
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testFieldHideSection)
+{
+    createSwDoc("field_hide_section.fodt");
+    SwDoc* pDoc = getSwDoc();
+    CPPUNIT_ASSERT(pDoc);
+
+    xmlDocUniquePtr pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, "/root/page[1]/body/section/tab/row"_ostr, 1);
+    assertXPath(pXmlDoc, "/root/page[2]/body/section/tab/row"_ostr, 1);
+    assertXPath(pXmlDoc, "/root/page"_ostr, 2);
+    discardDumpedLayout();
+
+    SwWrtShell* pWrtShell = pDoc->GetDocShell()->GetWrtShell();
+    ::std::unique_ptr<SwField> pField(pWrtShell->GetCurField()->CopyField());
+    SwFieldMgr manager(pWrtShell);
+
+    pWrtShell->StartAllAction();
+    manager.UpdateCurField(10000 /*(?)*/, "Foo", "1", std::move(pField));
+    pWrtShell->EndAllAction();
+    Scheduler::ProcessEventsToIdle();
+
+    pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, "/root/page[1]/body/section/tab/row"_ostr, 2);
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/section/tab/row[1]/infos/bounds"_ostr, "height"_ostr,
+                "0");
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/section/tab/row[2]/infos/bounds"_ostr, "height"_ostr,
+                "0");
+    assertXPath(pXmlDoc, "/root/page[1]/body/section/infos/bounds"_ostr, 
"height"_ostr, "0");
+    // the problem was that there were 3 pages now
+    assertXPath(pXmlDoc, "/root/page"_ostr, 1);
+    discardDumpedLayout();
+
+    pWrtShell->StartAllAction();
+    manager.UpdateCurField(10000 /*(?)*/, "Foo", "0", std::move(pField));
+    pWrtShell->EndAllAction();
+    Scheduler::ProcessEventsToIdle();
+
+    pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, "/root/page[1]/body/section/tab/row"_ostr, 1);
+    assertXPath(pXmlDoc, "/root/page[2]/body/section/tab/row"_ostr, 1);
+    assertXPath(pXmlDoc, "/root/page"_ostr, 2);
+    discardDumpedLayout();
+}
+
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf134272)
 {
     createSwDoc("tdf134472.odt");
diff --git a/sw/source/core/layout/trvlfrm.cxx 
b/sw/source/core/layout/trvlfrm.cxx
index 9e2466c2ff38..c7a74a4bc359 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -1745,6 +1745,11 @@ void SwFrame::MakeValidZeroHeight()
         aRectFnSet.SetHeight(area, 0);
     }
     ShrinkFrame(aRectFnSet.GetHeight(getFrameArea()));
+    if (IsLayoutFrame()) // ShrinkFrame might do nothing!
+    {
+        SwFrameAreaDefinition::FrameAreaWriteAccess area(*this);
+        aRectFnSet.SetHeight(area, 0);
+    }
     setFrameAreaSizeValid(true);
     setFramePrintAreaValid(true);
     setFrameAreaPositionValid(false);
commit c4a2d9e06dbc87efa37b7f71b7542b086fba6fcc
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Wed Jul 10 14:19:56 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    sw: layout: invalidate upper when hiding frame
    
    If a text frame is in a fly frame, and View->Field Names is turned off,
    the text frame is hidden but the fly frame is still the same size as
    before.  Call ShrinkFrame() to do some invalidations.
    
    (regression from commit fc1e6a64bd0517a7e67f08860c29b44d030220eb)
    
    Change-Id: I154551ebaa2370d088b12e178954f92d33056711
    (cherry picked from commit b77ebc93844f1b54c74ae5db9253a1d3ff618968)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170323
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 2dce213ce9f399c6ce1a3e928f34fa27988fa833)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170347
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/sw/qa/extras/layout/data/fly_hidden_paragraph.fodt 
b/sw/qa/extras/layout/data/fly_hidden_paragraph.fodt
new file mode 100644
index 000000000000..51731a6b368a
--- /dev/null
+++ b/sw/qa/extras/layout/data/fly_hidden_paragraph.fodt
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<office:document xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:dc="http://purl.org/dc/eleme
 nts/1.1/" xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 
xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
 xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0
 " xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; office:version="1.2" 
office:mimetype="application/vnd.oasis.opendocument.text">
+  <office:font-face-decls>
+  <style:font-face style:name="Times New Roman" svg:font-family="'Times New 
Roman'" style:font-family-generic="roman"/>
+  <style:font-face style:name="Lucida Sans" svg:font-family="'Lucida Sans'" 
style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="NSimSun" svg:font-family="NSimSun" 
style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" 
draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" 
draw:start-line-spacing-vertical="0.283cm" 
draw:end-line-spacing-horizontal="0.283cm" 
draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" 
style:font-name="Times New Roman" fo:font-size="12pt" fo:language="de" 
fo:country="DE" style:letter-kerning="true" style:font-name-asian="NSimSun" 
style:font-size-asian="10.5pt" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="Lucida Sans" 
style:font-size-complex="12pt" style:language-complex="hi" 
style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="paragraph">
+   <style:paragraph-properties fo:orphans="2" fo:widows="2" 
fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="hanging" style:line-break="strict" 
style:tab-stop-distance="1.251cm" style:writing-mode="page"/>
+   <style:text-properties style:use-window-font-color="true" 
style:font-name="Times New Roman" fo:font-size="12pt" fo:language="de" 
fo:country="DE" style:letter-kerning="true" style:font-name-asian="NSimSun" 
style:font-size-asian="10.5pt" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="Lucida Sans" 
style:font-size-complex="12pt" style:language-complex="hi" 
style:country-complex="IN" fo:hyphenate="false" 
fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" 
loext:hyphenation-no-caps="false"/>
+  </style:default-style>
+  <style:default-style style:family="table">
+   <style:table-properties table:border-model="collapsing"/>
+  </style:default-style>
+  <style:default-style style:family="table-row">
+   <style:table-row-properties fo:keep-together="auto"/>
+  </style:default-style>
+  <style:style style:name="Standard" style:family="paragraph" 
style:class="text"/>
+  <style:style style:name="Frame_20_contents" style:display-name="Frame 
contents" style:family="paragraph" style:parent-style-name="Standard" 
style:class="extra"/>
+  <style:style style:name="Frame" style:family="graphic">
+   <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" 
svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" 
fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" 
style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" 
style:vertical-pos="top" style:vertical-rel="paragraph-content" 
style:horizontal-pos="center" style:horizontal-rel="paragraph-content" 
fo:padding="0.15cm" fo:border="0.06pt solid #000000"/>
+  </style:style>
+  <text:outline-style style:name="Outline">
+   <text:outline-level-style text:level="1" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="2" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="3" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="4" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="5" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="6" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="7" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="8" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="9" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+   <text:outline-level-style text:level="10" style:num-format="">
+    <style:list-level-properties 
text:list-level-position-and-space-mode="label-alignment">
+     <style:list-level-label-alignment text:label-followed-by="listtab"/>
+    </style:list-level-properties>
+   </text:outline-level-style>
+  </text:outline-style>
+  <text:notes-configuration text:note-class="footnote" style:num-format="1" 
text:start-value="0" text:footnotes-position="page" 
text:start-numbering-at="document"/>
+  <text:notes-configuration text:note-class="endnote" style:num-format="i" 
text:start-value="0"/>
+  <text:linenumbering-configuration text:number-lines="false" 
text:offset="0.499cm" style:num-format="1" text:number-position="left" 
text:increment="5"/>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Frame_20_contents">
+   <style:text-properties/>
+  </style:style>
+  <style:style style:name="T1" style:family="text">
+   <style:text-properties/>
+  </style:style>
+  <style:style style:name="fr1" style:family="graphic" 
style:parent-style-name="Frame">
+   <style:graphic-properties style:vertical-pos="top" 
style:vertical-rel="paragraph-content" style:horizontal-pos="center" 
style:horizontal-rel="paragraph"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="21.001cm" 
fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" 
fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" 
fo:margin-right="2cm" style:writing-mode="lr-tb" 
style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" 
style:layout-grid-base-height="0.706cm" style:layout-grid-ruby-height="0.353cm" 
style:layout-grid-mode="none" style:layout-grid-ruby-below="false" 
style:layout-grid-print="false" style:layout-grid-display="false" 
style:footnote-max-height="0cm">
+    <style:footnote-sep style:width="0.018cm" 
style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" 
style:line-style="solid" style:adjustment="left" style:rel-width="25%" 
style:color="#000000"/>
+   </style:page-layout-properties>
+   <style:header-style/>
+   <style:footer-style/>
+  </style:page-layout>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Standard" style:page-layout-name="pm1"/>
+ </office:master-styles>
+ <office:body>
+  <office:text>
+   <text:sequence-decls>
+    <text:sequence-decl text:display-outline-level="0" 
text:name="Illustration"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
+    <text:sequence-decl text:display-outline-level="0" text:name="Figure"/>
+   </text:sequence-decls>
+   <text:user-field-decls>
+    <text:user-field-decl office:value-type="string" office:string-value="" 
text:name="Test"/>
+   </text:user-field-decls>
+   <text:p text:style-name="Standard"><draw:frame draw:style-name="fr1" 
draw:name="Rahmen1" text:anchor-type="paragraph" svg:width="5.893cm" 
draw:z-index="0">
+     <draw:text-box fo:min-height="0.79cm">
+      <text:p text:style-name="P1"><text:span 
text:style-name="T1">invisible<text:line-break/><text:line-break/></text:span><text:hidden-paragraph
 text:condition="ooow:Test EQ &quot;&quot;" text:is-hidden="true"/></text:p>
+     </draw:text-box>
+    </draw:frame></text:p>
+  </office:text>
+ </office:body>
+</office:document>
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 668f61f99088..25d07c7348e3 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -745,6 +745,66 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testRedlineFlysInBody)
     }
 }
 
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testFlyHiddenParagraph)
+{
+    createSwDoc("fly_hidden_paragraph.fodt");
+
+    // first, disable both so para gets hidden
+    uno::Sequence<beans::PropertyValue> argsSH(
+        comphelper::InitPropertySequence({ { "ShowHiddenParagraphs", 
uno::Any(false) } }));
+    dispatchCommand(mxComponent, ".uno:ShowHiddenParagraphs", argsSH);
+
+    uno::Sequence<beans::PropertyValue> args(
+        comphelper::InitPropertySequence({ { "Fieldnames", uno::Any(false) } 
}));
+
+    dispatchCommand(mxComponent, ".uno:Fieldnames", args);
+    Scheduler::ProcessEventsToIdle();
+
+    xmlDocUniquePtr pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/txt/infos/bounds"_ostr,
+                "height"_ostr, "0");
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/infos/bounds"_ostr, "height"_ostr,
+                "448");
+    discardDumpedLayout();
+
+    // the problem was that now the fly was the same height as before hiding
+    dispatchCommand(mxComponent, ".uno:Fieldnames", {});
+    Scheduler::ProcessEventsToIdle();
+
+    pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/txt/infos/bounds"_ostr,
+                "height"_ostr, "828");
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/infos/bounds"_ostr, "height"_ostr,
+                "1000");
+    discardDumpedLayout();
+
+    dispatchCommand(mxComponent, ".uno:Fieldnames", {});
+    Scheduler::ProcessEventsToIdle();
+
+    pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/txt/infos/bounds"_ostr,
+                "height"_ostr, "0");
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/infos/bounds"_ostr, "height"_ostr,
+                "448");
+    discardDumpedLayout();
+
+    dispatchCommand(mxComponent, ".uno:Fieldnames", {});
+    Scheduler::ProcessEventsToIdle();
+
+    pXmlDoc = parseLayoutDump();
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/txt/infos/bounds"_ostr,
+                "height"_ostr, "828");
+    assertXPath(pXmlDoc, 
"/root/page[1]/body/txt[1]/anchored/fly/infos/bounds"_ostr, "height"_ostr,
+                "1000");
+    discardDumpedLayout();
+
+    // other test like testTdf143239 and testTdf159101 depend on this;
+    // seems getting the previous value is only possible with a listener
+    // so just hardcode it...
+    dispatchCommand(mxComponent, ".uno:Fieldnames", args);
+    Scheduler::ProcessEventsToIdle();
+}
+
 CPPUNIT_TEST_FIXTURE(SwLayoutWriter, TestTdf134272)
 {
     createSwDoc("tdf134472.odt");
diff --git a/sw/source/core/layout/trvlfrm.cxx 
b/sw/source/core/layout/trvlfrm.cxx
index b9e05dd30a40..9e2466c2ff38 100644
--- a/sw/source/core/layout/trvlfrm.cxx
+++ b/sw/source/core/layout/trvlfrm.cxx
@@ -1740,14 +1740,11 @@ bool SwFrame::IsHiddenNow() const
 void SwFrame::MakeValidZeroHeight()
 {
     SwRectFnSet aRectFnSet(this);
-    {
-        SwFrameAreaDefinition::FrameAreaWriteAccess area(*this);
-        aRectFnSet.SetHeight(area, 0);
-    }
     {
         SwFrameAreaDefinition::FramePrintAreaWriteAccess area(*this);
         aRectFnSet.SetHeight(area, 0);
     }
+    ShrinkFrame(aRectFnSet.GetHeight(getFrameArea()));
     setFrameAreaSizeValid(true);
     setFramePrintAreaValid(true);
     setFrameAreaPositionValid(false);
commit c39e163029ac3cc5e3113ab7754566b319045a79
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sat Jul 13 22:54:05 2024 +0500
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    tdf#161990: take MapMode's origin point into account
    
    Regression from commit cc3663bbaed4f65d64154e5f9abb51a5f622f710 (tdf#160702:
    improve text positioning, 2024-04-20).
    
    Change-Id: I03f461d7f03c3e67ccdb8c4376720feb69903d6b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170432
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    (cherry picked from commit ccc3996cfcbebe14e9d5f3511906cfc64ddf3452)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170466
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>

diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx 
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 0b6314e95928..45127a454008 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -426,13 +426,14 @@ void 
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
                         MapMode aMapMode = mpOutputDevice->GetMapMode();
                         aMapMode.SetScaleX(aMapMode.GetScaleX() * 
nFontScalingFixX);
                         aMapMode.SetScaleY(aMapMode.GetScaleY() * 
nFontScalingFixY);
+                        Point origin = aMapMode.GetOrigin();
 
                         mpOutputDevice->Push(vcl::PushFlags::MAPMODE);
                         mpOutputDevice->SetRelativeMapMode(aMapMode);
                         bChangeMapMode = true;
 
-                        aPointX /= nFontScalingFixX;
-                        aPointY /= nFontScalingFixY;
+                        aPointX = (aPointX + origin.X()) / nFontScalingFixX - 
origin.X();
+                        aPointY = (aPointY + origin.Y()) / nFontScalingFixY - 
origin.Y();
                     }
                 }
 
diff --git a/sw/qa/core/text/data/tdf161990-subscripts.fodt 
b/sw/qa/core/text/data/tdf161990-subscripts.fodt
new file mode 100644
index 000000000000..c9f172aa6d56
--- /dev/null
+++ b/sw/qa/core/text/data/tdf161990-subscripts.fodt
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
+ <office:font-face-decls>
+  <style:font-face style:name="Liberation Sans" 
svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties draw:start-line-spacing-horizontal="2.83mm" 
draw:start-line-spacing-vertical="2.83mm" 
draw:end-line-spacing-horizontal="2.83mm" 
draw:end-line-spacing-vertical="2.83mm" style:writing-mode="lr-tb" 
style:flow-with-text="false"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" style:font-independent-line-spacing="false"/>
+   <style:text-properties style:use-window-font-color="true" 
style:font-name="Liberation Sans" fo:font-size="12pt" 
style:letter-kerning="true"/>
+  </style:default-style>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="T1" style:family="text">
+   <style:text-properties style:text-position="-33% 58%" fo:font-size="11pt"/>
+  </style:style>
+  <style:style style:name="gr1" style:family="graphic">
+   <style:graphic-properties draw:stroke="none" draw:fill="none" 
draw:textarea-horizontal-align="left" draw:auto-grow-height="true" 
draw:auto-grow-width="true" fo:min-height="5mm" fo:min-width="4mm" 
fo:padding-top="0" fo:padding-bottom="0" fo:padding-left="0" 
fo:padding-right="0" fo:wrap-option="wrap" draw:shadow="hidden" 
style:run-through="foreground" style:vertical-pos="top" 
style:vertical-rel="page-content" style:horizontal-pos="left" 
style:horizontal-rel="page-content"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties fo:page-width="210mm" fo:page-height="297mm" 
style:print-orientation="portrait" fo:margin-top="20mm" fo:margin-bottom="20mm" 
fo:margin-left="20mm" fo:margin-right="20mm" style:writing-mode="lr-tb"/>
+  </style:page-layout>
+  <style:style style:name="dp1" style:family="drawing-page"/>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Standard" style:page-layout-name="pm1" 
draw:style-name="dp1"/>
+ </office:master-styles>
+ <office:body>
+  <office:text>
+   <draw:frame text:anchor-type="page" text:anchor-page-number="1" 
draw:name="Shape_p1" draw:style-name="gr1" svg:width="9.16mm" 
svg:height="8.4mm" svg:x="0" svg:y="0">
+    <draw:text-box>
+     <text:p>P<text:span text:style-name="T1">1</text:span></text:p>
+    </draw:text-box>
+   </draw:frame>
+   <draw:frame text:anchor-type="page" text:anchor-page-number="6" 
draw:name="Shape_p6" draw:style-name="gr1" svg:width="9.16mm" 
svg:height="8.4mm" svg:x="0" svg:y="0">
+    <draw:text-box>
+     <text:p>P<text:span text:style-name="T1">1</text:span></text:p>
+    </draw:text-box>
+   </draw:frame>
+   <text:p/>
+  </office:text>
+ </office:body>
+</office:document>
\ No newline at end of file
diff --git a/sw/qa/core/text/text.cxx b/sw/qa/core/text/text.cxx
index f18c4fd531f8..722ca5ccd1d0 100644
--- a/sw/qa/core/text/text.cxx
+++ b/sw/qa/core/text/text.cxx
@@ -1660,6 +1660,64 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTdf112594)
                 u"\u202F\u1824"_ustr);
 }
 
+CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTdf161990)
+{
+    auto pPDFium = vcl::pdf::PDFiumLibrary::get();
+    if (!pPDFium)
+        return;
+
+    // Given a file with two frames, each having a subscript run, on pages 1 
and 6:
+    createSwDoc("tdf161990-subscripts.fodt");
+
+    // When exporting to PDF:
+    save(u"writer_pdf_Export"_ustr);
+    auto pPdfDocument = parsePDFExport();
+
+    // Check that both subscripts are positioned correctly relative to the 
non-subscript runs
+    double expectedOffset = 0;
+
+    // Page 1
+    {
+        auto pPage = pPdfDocument->openPage(0);
+        auto pTextPage = pPage->getTextPage();
+
+        CPPUNIT_ASSERT_EQUAL(2, pPage->getObjectCount());
+
+        auto pObject = pPage->getObject(0);
+        CPPUNIT_ASSERT_EQUAL(u"P"_ustr, pObject->getText(pTextPage));
+        auto textPPos = pObject->getBounds();
+        pObject = pPage->getObject(1);
+        CPPUNIT_ASSERT_EQUAL(u"1"_ustr, pObject->getText(pTextPage));
+        auto text1Pos = pObject->getBounds();
+        expectedOffset = textPPos.getMaxY() - text1Pos.getMaxY();
+        // Without the fix, this would fail with
+        // - Expected: 7.49
+        // - Actual  : 7.54150390625
+        // But if it fails in some configurations because of different page 
units, then this
+        // check is not as important as that this value is the same as on the 
6th page below.
+        CPPUNIT_ASSERT_DOUBLES_EQUAL(7.49, expectedOffset, 0.01);
+    }
+
+    // Page 6
+    {
+        auto pPage = pPdfDocument->openPage(5);
+        auto pTextPage = pPage->getTextPage();
+
+        CPPUNIT_ASSERT_EQUAL(2, pPage->getObjectCount());
+
+        auto pObject = pPage->getObject(0);
+        CPPUNIT_ASSERT_EQUAL(u"P"_ustr, pObject->getText(pTextPage));
+        auto textPPos = pObject->getBounds();
+        pObject = pPage->getObject(1);
+        CPPUNIT_ASSERT_EQUAL(u"1"_ustr, pObject->getText(pTextPage));
+        auto text1Pos = pObject->getBounds();
+        // Without the fix, this would fail with
+        // - Expected: 7.4925537109375
+        // - Actual  : 20.9005126953125
+        CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedOffset, textPPos.getMaxY() - 
text1Pos.getMaxY(), 0.01);
+    }
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 7dbc5804e513fa94cc2e13b30d50215a27e8dfc1
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Jul 11 14:22:58 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    tdf#161985: getOpacity is also called from other places
    
    Partially revert 56039daae4a436d7ea1b093a02cf0e8ad3bda4a9
    "tdf#149673: only check opacity from parent..." to make
    getOpacity behave as before and move the new behaviour
    of getOpacity inside add_postProcess
    
    Change-Id: If475cddbc4967308fa06adacda621cb3790c6f70
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170351
    Reviewed-by: Aron Budea <aron.bu...@collabora.com>
    Tested-by: Jenkins

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 3dd819f6522b..54410685107b 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -422,6 +422,19 @@ CPPUNIT_TEST_FIXTURE(Test, testFontsizeRelative)
     assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"familyname"_ostr, "DejaVu Serif");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf161985)
+{
+    xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf161985.svg");
+
+    // Without the fix in place, this test would have failed with
+    // - Expected: 0
+    // - Actual  : 1
+    assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor"_ostr, 0);
+
+    assertXPath(pDocument, "/primitive2D/transform/textsimpleportion"_ostr, 1);
+    assertXPath(pDocument, "/primitive2D/transform/textsimpleportion"_ostr, 
"text"_ostr, u"This is a test file."_ustr);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf160386)
 {
     xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf160386.svg");
diff --git a/svgio/qa/cppunit/data/tdf161985.svg 
b/svgio/qa/cppunit/data/tdf161985.svg
new file mode 100644
index 000000000000..781811b15dbf
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf161985.svg
@@ -0,0 +1,14 @@
+<svg viewBox="0 0 630 550" xmlns="http://www.w3.org/2000/svg";>
+  <style type="text/css">
+     #help { font-size:12px; }
+  </style>
+  <g>
+    <g id="help" opacity="0">
+      <path
+         d="M16 50 c-16 0 -16 -8 -16 -16 v-18 c0 -16 8 -16 16 -16 h300 c16 0 
16 5 16 16 v18 c0 16 -8 16 -16 16 H60 L0 70 L36 50 H16"/>
+    </g>
+    <text>
+        <tspan x="101.0625" y="222.22849">This is a test file.</tspan>
+    </text>
+  </g>
+</svg>
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index bb15fbfdc0a3..6c36c306ce24 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1175,7 +1175,24 @@ namespace svgio::svgreader
             drawinglayer::primitive2d::Primitive2DContainer&& rSource,
             const std::optional<basegfx::B2DHomMatrix>& pTransform) const
         {
-            const double fOpacity(getOpacity().solve(mrOwner));
+            // default is 1
+            double fOpacity(1.0);
+
+            if(maOpacity.isSet())
+            {
+                fOpacity = maOpacity.solve(mrOwner);
+            }
+            else
+            {
+                // if opacity is not set, check the css style
+                if (const SvgStyleAttributes* pSvgStyleAttributes = 
getCssStyleParent())
+                {
+                    if (pSvgStyleAttributes->maOpacity.isSet())
+                    {
+                        fOpacity =  
pSvgStyleAttributes->maOpacity.solve(mrOwner);
+                    }
+                }
+            }
 
             if(basegfx::fTools::equalZero(fOpacity))
             {
@@ -1297,7 +1314,7 @@ namespace svgio::svgreader
             maBaselineShift(BaselineShift::Baseline),
             maBaselineShiftNumber(0),
             maDominantBaseline(DominantBaseline::Auto),
-            maResolvingParent(34, 0),
+            maResolvingParent(35, 0),
             mbStrokeDasharraySet(false),
             mbContextFill(false),
             mbContextStroke(false),
@@ -2405,16 +2422,14 @@ namespace svgio::svgreader
                 return maOpacity;
             }
 
-            // This is called from add_postProcess so only check the parent 
style
-            // if it has a local css style, because it's the first in the stack
-            if(mrOwner.hasLocalCssStyle())
-            {
-                const SvgStyleAttributes* pSvgStyleAttributes = 
getParentStyle();
+            const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle();
 
-                if (pSvgStyleAttributes && 
pSvgStyleAttributes->maOpacity.isSet())
-                {
-                    return pSvgStyleAttributes->maOpacity;
-                }
+            if (pSvgStyleAttributes && maResolvingParent[34] < 
nStyleDepthLimit)
+            {
+                ++maResolvingParent[34];
+                auto ret = pSvgStyleAttributes->getOpacity();
+                --maResolvingParent[34];
+                return ret;
             }
 
             // default is 1
commit 06b97811454e2124642e40f7f27c1ae621319368
Author:     Patrick Luby <guibmac...@gmail.com>
AuthorDate: Thu Jul 11 20:44:55 2024 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    tdf#67943 tabs must have radio button role and tab button subrole
    
    Also, reimplement -[AquaA11yWrapper tabsAttribute] to return children
    for tab bars. This will cause VoiceOver to announce that the currently
    selected tab is "X of Y" tabs in the tab bar.
    
    Change-Id: I2c3b890fd445c22842b90d60170a71e4e8aa91ff
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170389
    Reviewed-by: Patrick Luby <guibomac...@gmail.com>
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    (cherry picked from commit c2061f21b1a88c9692a4e081280ed2c52e0b9141)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170358

diff --git a/vcl/osx/a11yrolehelper.mm b/vcl/osx/a11yrolehelper.mm
index 5b621a74e23a..7a8ef5adcbf6 100644
--- a/vcl/osx/a11yrolehelper.mm
+++ b/vcl/osx/a11yrolehelper.mm
@@ -83,7 +83,8 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::MENU_BAR, NSAccessibilityMenuBarRole );
         MAP( AccessibleRole::MENU_ITEM, NSAccessibilityMenuItemRole );
         MAP( AccessibleRole::OPTION_PANE, NSAccessibilityUnknownRole ); // 
FIXME
-        MAP( AccessibleRole::PAGE_TAB, NSAccessibilityButtonRole );
+        // tdf#67943 tabs must have radio button role and tab button subrole
+        MAP( AccessibleRole::PAGE_TAB, NSAccessibilityRadioButtonRole );
         MAP( AccessibleRole::PAGE_TAB_LIST, NSAccessibilityTabGroupRole );
         MAP( AccessibleRole::PANEL, NSAccessibilityGroupRole );
         MAP( AccessibleRole::PARAGRAPH, NSAccessibilityTextAreaRole );
@@ -220,7 +221,8 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::MENU_BAR, @"" );
         MAP( AccessibleRole::MENU_ITEM, @"" );
         MAP( AccessibleRole::OPTION_PANE, @"" );
-        MAP( AccessibleRole::PAGE_TAB, @"" );
+        // tdf#67943 tabs must have radio button role and tab button subrole
+        MAP( AccessibleRole::PAGE_TAB, NSAccessibilityTabButtonSubrole );
         MAP( AccessibleRole::PAGE_TAB_LIST, @"" );
         MAP( AccessibleRole::PANEL, @"" );
         MAP( AccessibleRole::PARAGRAPH, @"" );
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm
index 9ad6f0d473bc..ec8be4afdfef 100644
--- a/vcl/osx/a11ywrapper.mm
+++ b/vcl/osx/a11ywrapper.mm
@@ -560,7 +560,14 @@ static std::ostream &operator<<(std::ostream &s, NSObject 
*obj) {
 }
 
 -(id)tabsAttribute {
-    return self; // TODO ???
+    // Related tdf#67943: return children if this is a tab bar
+    // This will cause VoiceOver to announce that the currently selected tab
+    // is "X of Y" tabs in the tab bar.
+    if ( [ self accessibleContext ] -> getAccessibleRole() == 
AccessibleRole::PAGE_TAB_LIST ) {
+        return [ self childrenAttribute ];
+    } else {
+        return nil;
+    }
 }
 
 -(id)sharedTextUIElementsAttribute {
commit 3ed8874df97abe2dde8ca4174b2cea40bce38c39
Author:     Patrick Luby <guibmac...@gmail.com>
AuthorDate: Wed Jul 10 08:27:01 2024 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    tdf#160427 native menu changes can only be done on the main thread
    
    Change-Id: I7dbe9913eaa087e143acb95bdae625c69888c3dd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170308
    Reviewed-by: Patrick Luby <guibomac...@gmail.com>
    Tested-by: Jenkins
    (cherry picked from commit 8e8036491ff0a6c2df2075af66609df17ee594cd)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170297
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index 800affc060ef..dcac168f7e53 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -385,6 +385,9 @@ void AquaSalMenu::setMainMenu()
 
 void AquaSalMenu::setDefaultMenu()
 {
+    // tdf#160427 native menu changes can only be done on the main thread
+    OSX_SALDATA_RUNINMAIN(AquaSalMenu::setDefaultMenu())
+
     NSMenu* pMenu = [NSApp mainMenu];
 
     unsetMainMenu();
@@ -498,6 +501,9 @@ void AquaSalMenu::InsertItem( SalMenuItem* pSalMenuItem, 
unsigned nPos )
 
 void AquaSalMenu::RemoveItem( unsigned nPos )
 {
+    // tdf#160427 native menu changes can only be done on the main thread
+    OSX_SALDATA_RUNINMAIN(RemoveItem(nPos))
+
     AquaSalMenuItem* pRemoveItem = nullptr;
     if( nPos == MENU_APPEND || nPos == (maItems.size()-1) )
     {
commit 8cdf1e07e8130b84c714398c00c598f6316fce57
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Wed Jul 10 16:49:24 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    merge-app-bundles: fix _ctypes.cpython path
    
    Change-Id: I247c9674de88c9b97297d01b24232a562bcade01
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170318
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Tested-by: Jenkins
    (cherry picked from commit a7f64217aad6375ea07e260ad2a6bd1e7900af6c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170301
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/bin/merge-app-bundles b/bin/merge-app-bundles
index b92c90b5a0c9..34f84274ec5d 100755
--- a/bin/merge-app-bundles
+++ b/bin/merge-app-bundles
@@ -110,7 +110,7 @@ OUT=$(cd "$3" && /bin/pwd)
         else
             # We ignore some files that can't be built for macOS on arm64 for 
now
             case "$fname" in
-                
./Contents/Frameworks/LibreOfficePython.framework/Versions/3.7/lib/python*/lib-dynload/_ctypes.cpython-*m.so)
+                
./Contents/Frameworks/LibreOfficePython.framework/Versions/3.*/lib/python*/lib-dynload/_ctypes.cpython-*m.so)
                     ;;
                 *)
                     echo "$fname does not exist in $TWO" >&2
commit 4b21973befb89b1c8b8ecd11d5dde4bed8aafc59
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jul 10 11:14:38 2024 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    cid#1608592 Double lock
    
    since:
    
    commit 9301f4d486b13dac2a66b797d5e24eb6dc9f7582
    Date:   Thu Feb 16 14:31:25 2023 +0200
    
        osl::Mutex->std::mutex in ResultSetDataSupplier
    
    Change-Id: I6be50541e00f8f8de3bdebe1690e14e805bee14e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170281
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    (cherry picked from commit 3374417097edcee8c8951fd1df6044e2d24b74a6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170293
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx 
b/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
index 9930f80d6e3c..272349bd6e46 100644
--- a/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
+++ b/ucb/source/ucp/tdoc/tdoc_datasupplier.cxx
@@ -77,7 +77,7 @@ ResultSetDataSupplier::queryContentIdentifierString( 
sal_uInt32 nIndex )
 }
 
 OUString
-ResultSetDataSupplier::queryContentIdentifierStringImpl( 
std::unique_lock<std::mutex>& /*rGuard*/, sal_uInt32 nIndex )
+ResultSetDataSupplier::queryContentIdentifierStringImpl( 
std::unique_lock<std::mutex>& rGuard, sal_uInt32 nIndex )
 {
     if ( nIndex < m_aResults.size() )
     {
@@ -89,7 +89,7 @@ ResultSetDataSupplier::queryContentIdentifierStringImpl( 
std::unique_lock<std::m
         }
     }
 
-    if ( getResult( nIndex ) )
+    if ( getResultImpl(rGuard, nIndex) )
     {
         // Note: getResult fills m_pImpl->m_aResults[ nIndex ]->aURL.
         return m_aResults[ nIndex ].aURL;
commit e8049f0b4be2cfda55ff3a97728733a1dcf6691c
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Jul 9 17:22:15 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    package: ZipFile: don't accept duplicate entries (case insensitive)
    
    This is required for OOXML, but not for ODF.
    
    Unclear if there are use cases for this with ODF, can add some
    conditions if it turns out to be a problem.
    
    Change-Id: I3810da5c2273574135d133b4a9bbad98dc97af44
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170223
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 4833f131243bdb409ddfaff8b4db87d4ed2af98f)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170282
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>

diff --git a/package/inc/ZipFile.hxx b/package/inc/ZipFile.hxx
index 8bc726af8457..d9910fde92a9 100644
--- a/package/inc/ZipFile.hxx
+++ b/package/inc/ZipFile.hxx
@@ -29,6 +29,8 @@
 #include "HashMaps.hxx"
 #include "EncryptionData.hxx"
 
+#include <unordered_set>
+
 class MemoryByteGrabber;
 namespace com::sun::star {
     namespace uno { class XComponentContext; }
@@ -52,6 +54,8 @@ class ZipFile
 {
     rtl::Reference<comphelper::RefCountedMutex> m_aMutexHolder;
 
+    std::unordered_set<OUString> m_EntriesInsensitive;
+
     EntryHash       aEntries;
     ByteGrabber     aGrabber;
     ZipUtils::Inflater aInflater;
diff --git a/package/source/zipapi/ZipFile.cxx 
b/package/source/zipapi/ZipFile.cxx
index c7e10cb06e39..1e1ab575dcfe 100644
--- a/package/source/zipapi/ZipFile.cxx
+++ b/package/source/zipapi/ZipFile.cxx
@@ -94,6 +94,7 @@ ZipFile::ZipFile( rtl::Reference<comphelper::RefCountedMutex> 
aMutexHolder,
     if (bInitialise && readCEN() == -1 )
     {
         aEntries.clear();
+        m_EntriesInsensitive.clear();
         throw ZipException( "stream data looks to be broken" );
     }
 }
@@ -118,6 +119,7 @@ ZipFile::ZipFile( rtl::Reference< 
comphelper::RefCountedMutex > aMutexHolder,
         else if ( readCEN() == -1 )
         {
             aEntries.clear();
+            m_EntriesInsensitive.clear();
             throw ZipException("stream data looks to be broken" );
         }
     }
@@ -1156,15 +1158,19 @@ sal_Int32 ZipFile::readCEN()
                     continue; // This is a directory entry, not a stream - 
skip it
             }
 
-            if (auto it = aEntries.find(aEntry.sPath); it == aEntries.end())
-            {
-                aEntries[aEntry.sPath] = aEntry;
-            }
-            else
+            if (aEntries.find(aEntry.sPath) != aEntries.end())
             {
                 SAL_INFO("package", "Duplicate CEN entry: \"" << aEntry.sPath 
<< "\"");
                 throw ZipException(u"Duplicate CEN entry"_ustr);
             }
+            // this is required for OOXML, but not for ODF
+            auto const lowerPath(aEntry.sPath.toAsciiLowerCase());
+            if (!m_EntriesInsensitive.insert(lowerPath).second)
+            {
+                SAL_INFO("package", "Duplicate CEN entry (case insensitive): 
\"" << aEntry.sPath << "\"");
+                throw ZipException(u"Duplicate CEN entry (case 
insensitive)"_ustr);
+            }
+            aEntries[aEntry.sPath] = aEntry;
         }
 
         if (nCount != nTotal)
@@ -1373,7 +1379,13 @@ void ZipFile::recover()
                                         nPos += 4;
                                         continue;
                                     }
-
+                                    auto const 
lowerPath(aEntry.sPath.toAsciiLowerCase());
+                                    if (m_EntriesInsensitive.find(lowerPath) 
!= m_EntriesInsensitive.end())
+                                    {   // this is required for OOXML, but not 
for ODF
+                                        nPos += 4;
+                                        continue;
+                                    }
+                                    m_EntriesInsensitive.insert(lowerPath);
                                     aEntries.emplace( aEntry.sPath, aEntry );
 
                                     // Drop any "directory" entry 
corresponding to this one's path;
commit 3c6dc6b629c51530fb4531e60c0c599128f33c18
Author:     Patrick Luby <guibmac...@gmail.com>
AuthorDate: Tue Jul 9 15:47:24 2024 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    tdf#161712 invoke ScSimpleUndo::EndUndo() before ShowBlock()
    
    If this is an instance of ScUndoAutoFill, ShowBlock() will invoke
    ScTabViewShell::MoveCursorAbs() which will delete this instance
    so invoke ScSimpleUndo::EndUndo() first.
    
    Change-Id: I7ef6dfa0444c38974e1d8c5af6672144f045d22d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170254
    Tested-by: Jenkins
    Reviewed-by: Patrick Luby <guibomac...@gmail.com>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    (cherry picked from commit 99fda8da4e0a1b24c9aaecacfeeba0fe593fe730)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170288
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
    Tested-by: Patrick Luby <guibomac...@gmail.com>

diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index 9c7f5571dd71..71a0bfe957f4 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -270,8 +270,12 @@ void ScBlockUndo::EndUndo()
     EnableDrawAdjust( &pDocShell->GetDocument(), true );
     DoSdrUndoAction( pDrawUndo.get(), &pDocShell->GetDocument() );
 
-    ShowBlock();
+    // tdf#161712 invoke ScSimpleUndo::EndUndo() before ShowBlock()
+    // If this is an instance of ScUndoAutoFill, ShowBlock() will invoke
+    // ScTabViewShell::MoveCursorAbs() which will delete this instance
+    // so invoke ScSimpleUndo::EndUndo() first.
     ScSimpleUndo::EndUndo();
+    ShowBlock();
 }
 
 void ScBlockUndo::EndRedo()
commit 505ec552894030ceb9cbb16173999237ccbf3bc1
Author:     Christian Lohmaier <lohmaier+libreoff...@googlemail.com>
AuthorDate: Wed Jul 10 13:39:59 2024 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Tue Jul 16 10:27:42 2024 +0200

    update credits
    
    Change-Id: If9db88d33699c5cd3c48dca42bc3c86e6f3eea3b
    (cherry picked from commit d35deb92f8029a40fa1cc579c4481a5c5eaf2791)

diff --git a/readlicense_oo/license/CREDITS.fodt 
b/readlicense_oo/license/CREDITS.fodt
index 7b2c705d9bde..2b36596b6033 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:css3t="http://www.w3.org/TR/css3-text/"; 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xforms="http://www.w3.org/2002/xforms"; 
xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:drawooo="http://openoffice.org/2010/draw"; 
xmlns:oooc="http://openoffice.org/2004/calc"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:c
 alcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" 
xmlns:tableooo="http://openoffice.org/2009/table"; 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:rpt="http://openoffice.org/2005/report"; 
xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
 xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:officeooo="http://openoffice.org/2009/office"; 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:
 meta:1.0" 
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
 office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/24.2.3.2$Linux_X86_64
 
LibreOffice_project/433d9c2ded56988e8a90e6b2e771ee4e6a5ab2ba</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="5" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="4940" meta:word-count="18491" 
meta:character-count="133884" 
meta:non-whitespace-character-count="117446"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » 
LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits
 for the LibreOffice 
development/coding.</dc:description><meta:generator>LibreOffice/24.2.4.2$Linux_X86_64
 
LibreOffice_project/51a6219feb6075d9a4c46691dcfe0cd9c4fff3c2</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic
 meta:table-count="5" meta:image-count="1" meta:object-count="0" 
meta:page-count="2" meta:paragraph-count="4949" meta:word-count="18519" 
meta:character-count="134125" 
meta:non-whitespace-character-count="117661"/><meta:user-defined 
meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" 
config:type="long">656</config:config-item>
+   <config:config-item config:name="ViewAreaTop" 
config:type="long">635</config:config-item>
    <config:config-item config:name="ViewAreaLeft" 
config:type="long">501</config:config-item>
    <config:config-item config:name="ViewAreaWidth" 
config:type="long">55167</config:config-item>
    <config:config-item config:name="ViewAreaHeight" 
config:type="long">26963</config:config-item>
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" 
config:type="long">3623</config:config-item>
      <config:config-item config:name="ViewTop" 
config:type="long">3434</config:config-item>
      <config:config-item config:name="VisibleLeft" 
config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" 
config:type="long">656</config:config-item>
+     <config:config-item config:name="VisibleTop" 
config:type="long">635</config:config-item>
      <config:config-item config:name="VisibleRight" 
config:type="long">55667</config:config-item>
-     <config:config-item config:name="VisibleBottom" 
config:type="long">27617</config:config-item>
+     <config:config-item config:name="VisibleBottom" 
config:type="long">27596</config:config-item>
      <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" 
config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" 
config:type="boolean">false</config:config-item>
@@ -59,6 +59,7 @@
    <config:config-item config:name="EmbedComplexScriptFonts" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="EmbedAsianScriptFonts" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="PrintTextPlaceholder" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ApplyTextAttrToEmptyLineAtEndOfParagraph" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="EmbedSystemFonts" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="EmbedFonts" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="DisableOffPagePositioning" 
config:type="boolean">true</config:config-item>
@@ -146,7 +147,7 @@
    <config:config-item config:name="UseOldPrinterMetrics" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="RedlineProtectionKey" 
config:type="base64Binary"/>
    <config:config-item config:name="TabsRelativeToIndent" 
config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" 
config:type="int">13597256</config:config-item>
+   <config:config-item config:name="Rsid" 
config:type="int">13654134</config:config-item>
    <config:config-item config:name="UpdateFromTemplate" 
config:type="boolean">true</config:config-item>
    <config:config-item config:name="ProtectForm" 
config:type="boolean">false</config:config-item>
    <config:config-item config:name="MsWordCompMinLineHeightByFly" 
config:type="boolean">false</config:config-item>
@@ -176,7 +177,7 @@
  <office:styles>
   <style:default-style style:family="graphic">
    <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" 
draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" 
draw:start-line-spacing-vertical="0.283cm" 
draw:end-line-spacing-horizontal="0.283cm" 
draw:end-line-spacing-vertical="0.283cm" style:writing-mode="lr-tb" 
style:flow-with-text="true"/>
-   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:font-independent-line-spacing="false">
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:line-break="strict" loext:tab-stop-distance="0cm" 
style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
     <style:tab-stops/>
    </style:paragraph-properties>
    <style:text-properties style:use-window-font-color="true" 
loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" 
fo:language="hu" fo:country="HU" style:letter-kerning="true" 
style:font-name-asian="SimSun" style:font-size-asian="12pt" 
style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="Mangal1" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
@@ -370,23 +371,20 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="26.386cm" table:align="left"/>
+   <style:table-properties style:width="25.963cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="6.722cm"/>
+   <style:table-column-properties style:column-width="6.828cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.14cm"/>
+   <style:table-column-properties style:column-width="6.219cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.802cm"/>
+   <style:table-column-properties style:column-width="6.696cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle1.C461" style:family="table-cell">
-   <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
-  </style:style>
   <style:style style:name="Tabelle2" style:family="table">
    <style:table-properties style:width="18.078cm" table:align="left"/>
   </style:style>
@@ -448,16 +446,16 @@
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle5" style:family="table">
-   <style:table-properties style:width="32.075cm" table:align="left"/>
+   <style:table-properties style:width="32.683cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
-   <style:table-column-properties style:column-width="5.743cm"/>
+   <style:table-column-properties style:column-width="6.722cm"/>
   </style:style>
   <style:style style:name="Tabelle5.B" style:family="table-column">
-   <style:table-column-properties style:column-width="11.696cm"/>
+   <style:table-column-properties style:column-width="6.219cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.59cm"/>
+   <style:table-column-properties style:column-width="11.696cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
    <style:table-column-properties style:column-width="8.045cm"/>
@@ -465,7 +463,7 @@
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" 
fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle5.D728" style:family="table-cell">
+  <style:style style:name="Tabelle5.C730" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="P1" style:family="paragraph" 
style:parent-style-name="Table_20_Contents">
@@ -1163,20 +1161,20 @@
    </draw:frame>
    <text:section text:style-name="Sect1" text:name="BgContainer">
     <text:p text:style-name="P32">Credits</text:p>
-    <text:p text:style-name="Text_20_body">1972 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2024-05-28 14:34:40.</text:p>
+    <text:p text:style-name="Text_20_body">1974 individuals contributed to 
OpenOffice.org (and whose contributions were imported into LibreOffice) or 
LibreOffice until 2024-07-10 13:20:35.</text:p>
     <text:p text:style-name="Text_20_body"><text:span 
text:style-name="T1">*</text:span> marks developers whose first contributions 
happened after 2010-09-28.</text:p>
     <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers 
committing code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
      <table:table-column table:style-name="Tabelle1.A"/>
      <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-column table:style-name="Tabelle1.C"/>
-     <table:table-column table:style-name="Tabelle1.A"/>
+     <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ruediger 
Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 35504<text:line-break/>Joined: 
2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán 
McNamara<text:line-break/>Commits: 35643<text:line-break/>Joined: 
2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kurt 
Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 
2000-09-25</text:p>
@@ -1193,15 +1191,15 @@
        <text:p text:style-name="Table_20_Contents">Vladimir 
Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 
2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21201<text:line-break/>Joined: 
2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan 
Bergmann<text:line-break/>Commits: 21231<text:line-break/>Joined: 
2000-10-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 
18814<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 
18998<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-12-12</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 9965<text:line-break/>Joined: 
2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos 
Vajna<text:line-break/>Commits: 10002<text:line-break/>Joined: 
2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo 
Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 
2002-09-09</text:p>
@@ -1210,7 +1208,7 @@
        <text:p text:style-name="Table_20_Contents">Tor 
Lillqvist<text:line-break/>Commits: 9160<text:line-break/>Joined: 
2010-03-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael 
Stahl<text:line-break/>Commits: 8485<text:line-break/>Joined: 
2008-06-16</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael 
Stahl<text:line-break/>Commits: 8522<text:line-break/>Joined: 
2008-06-16</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1218,7 +1216,7 @@
        <text:p text:style-name="Table_20_Contents">Kohei 
Yoshida<text:line-break/>Commits: 5571<text:line-break/>Joined: 
2009-06-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5356<text:line-break/>Joined: 
2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike 
Rathke<text:line-break/>Commits: 5359<text:line-break/>Joined: 
2000-10-11</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Markus Mohrhard<text:line-break/>Commits: 
5203<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-03-17</text:span></text:p>
@@ -1229,21 +1227,21 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
3973<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-10-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 
4090<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-10-30</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 
3894<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 
3903<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-04</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">David 
Tardon<text:line-break/>Commits: 3648<text:line-break/>Joined: 
2009-11-12</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3485<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 
3533<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-06-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 
3412<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-04-26</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 
3480<text:line-break/>Joined: <text:span 
text:style-name="T2">2015-04-26</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Luboš 
Luňák<text:line-break/>Commits: 3201<text:line-break/>Joined: 
2010-09-21</text:p>
@@ -1252,7 +1250,7 @@
        <text:p text:style-name="Table_20_Contents">Hans-Joachim 
Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 
2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 
2915<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-02-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 
2986<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-02-06</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
@@ -1263,7 +1261,7 @@
        <text:p text:style-name="Table_20_Contents">Jan 
Holesovsky<text:line-break/>Commits: 2672<text:line-break/>Joined: 
2009-06-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Oliver 
Specht<text:line-break/>Commits: 2601<text:line-break/>Joined: 
2000-09-21</text:p>
+       <text:p text:style-name="Table_20_Contents">Oliver 
Specht<text:line-break/>Commits: 2605<text:line-break/>Joined: 
2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Mathias 
Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 
2000-09-20</text:p>
@@ -1271,7 +1269,7 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael 
Meeks<text:line-break/>Commits: 2513<text:line-break/>Joined: 
2004-08-05</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael 
Meeks<text:line-break/>Commits: 2515<text:line-break/>Joined: 
2004-08-05</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Bjoern 
Michaelsen<text:line-break/>Commits: 2493<text:line-break/>Joined: 
2009-10-14</text:p>
@@ -1285,13 +1283,13 @@
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2124<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 
2142<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Philipp Lohmann 
[pl]<text:line-break/>Commits: 2089<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 
2010<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 
2013<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-10-02</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Christian 
Lippka<text:line-break/>Commits: 1805<text:line-break/>Joined: 
2000-09-25</text:p>
@@ -1302,7 +1300,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 
1712<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-04-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Armin Le Grand 
(allotropia)<text:line-break/>Commits: 1700<text:line-break/>Joined: 
2000-09-25</text:p>
+       <text:p text:style-name="Table_20_Contents">Armin Le Grand 
(allotropia)<text:line-break/>Commits: 1705<text:line-break/>Joined: 
2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 
1486<text:line-break/>Joined: <text:span 
text:style-name="T2">2010-11-08</text:span></text:p>
@@ -1322,24 +1320,27 @@
        <text:p text:style-name="Table_20_Contents">Fridrich 
Štrba<text:line-break/>Commits: 1339<text:line-break/>Joined: 
2007-02-22</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Thomas Lange 
[tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 
1326<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-06-08</text:span></text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 
1303<text:line-break/>Joined: <text:span 
text:style-name="T2">2011-06-08</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Thomas Lange 
[tl]<text:line-break/>Commits: 1310<text:line-break/>Joined: 2000-09-22</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Niklas 
Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 
2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 
1258<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-03-22</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 
1271<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-10</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1249<text:line-break/>Joined: 
2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents">Christian 
Lohmaier<text:line-break/>Commits: 1268<text:line-break/>Joined: 
2008-06-01</text:p>
       </table:table-cell>
      </table:table-row>
      <table:table-row>
+      <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
+       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 
1261<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-03-22</text:span></text:p>
+      </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 
1232<text:line-break/>Joined: <text:span 
text:style-name="T2">2013-11-14</text:span></text:p>
       </table:table-cell>
@@ -1349,13 +1350,10 @@
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Tamás Zolnai<text:line-break/>Commits: 
1208<text:line-break/>Joined: <text:span 
text:style-name="T2">2012-08-06</text:span></text:p>
       </table:table-cell>
-      <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Daniel Rentz 
[dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p>
-      </table:table-cell>
      </table:table-row>
      <table:table-row>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span 
text:style-name="T1">*</text:span>Michael Weghorn<text:line-break/>Commits: 
1193<text:line-break/>Joined: <text:span 
text:style-name="T2">2014-09-10</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Daniel Rentz 
[dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" 
office:value-type="string">
-e 
... etc. - the rest is truncated

Reply via email to