android/source/build.gradle | 1 download.lst | 4 extensions/source/macosx/quicklookpreview/appex/Info.plist.in | 4 extensions/source/macosx/quicklookthumbnail/appex/Info.plist.in | 4 external/lcms2/0001-Added-missing-export.patch.1 | 25 -- external/lcms2/ExternalPackage_lcms2.mk | 2 external/lcms2/UnpackedTarball_lcms2.mk | 4 external/lcms2/lcms2-windows_aarch64_outdir.patch.1 | 26 -- oox/source/drawingml/shape.cxx | 14 - scp2/source/ooo/file_extra_ooo.scp | 1 sd/qa/unit/data/pptx/tdf165261.pptx |binary sd/qa/unit/data/xml/n762695_1.xml | 4 sd/qa/unit/data/xml/n820786_0.xml | 4 sd/qa/unit/data/xml/tdf90338_0.xml | 2 sd/qa/unit/data/xml/tdf92001_0.xml | 2 sd/qa/unit/export-tests-ooxml4.cxx | 28 ++ solenv/bin/modules/installer/windows/mergemodule.pm | 33 +- sw/inc/view.hxx | 2 sw/qa/extras/layout/data/tdf149089.fodt | 121 ++++++++++ sw/qa/extras/layout/layout5.cxx | 14 + sw/source/core/text/itrform2.cxx | 9 sw/source/filter/ww8/ww8par.cxx | 2 sw/source/uibase/docvw/edtwin.cxx | 2 sw/source/uibase/uiview/viewling.cxx | 9 vcl/qt5/QtTransferable.cxx | 11 25 files changed, 220 insertions(+), 108 deletions(-)
New commits: commit e2a673f095ee51f373eafce661471b1a73d99b5d Author: Balazs Varga <[email protected]> AuthorDate: Tue Feb 18 10:31:06 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:02 2025 +0100 tdf#165261 - PPTX import: fix text in shape is left-aligned instead of being centered regression from: 1d9ce0a67a71e51569cd33c26270eeece587a354 (tdf#162571 - sd: Text box expands or shrinks on left or right or...) Change-Id: Ieed39426dc5aec7a34d15bbb0a4faaeba04ba50f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181822 Tested-by: Jenkins Reviewed-by: Balazs Varga <[email protected]> (cherry picked from commit f9b9bf030618f66eccf9168413f1935ac521f161) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181859 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index 409b67b58ba2..cd2903179949 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -1531,16 +1531,12 @@ Reference< XShape > const & Shape::createAndInsert( std::optional<css::style::ParagraphAdjust>& oParaAdjust = mpTextBody->getParagraphs()[0]->getProperties().getParaAdjust(); - bool bAutoHeight = false; - Reference< XPropertySetInfo > xSetInfo(xSet->getPropertySetInfo()); - const OUString& rPropName = PropertyMap::getPropertyName(PROP_TextAutoGrowHeight); - if (xSetInfo.is() && xSetInfo->hasPropertyByName(rPropName)) - { - uno::Any aTextAutoGrowHeight = xSet->getPropertyValue(u"TextAutoGrowHeight"_ustr); - aTextAutoGrowHeight >>= bAutoHeight; - } + bool bAutoGrowHeight = getTextBody() + ->getTextProperties() + .maPropertyMap.getProperty(PROP_TextAutoGrowHeight) + .get<bool>(); - if (bAutoHeight && nShapeRotateInclCamera == 0) + if (bAutoGrowHeight && nShapeRotateInclCamera == 0) { mpTextBody->getTextProperties().maPropertyMap.setProperty( PROP_TextHorizontalAdjust, lcl_convertTextAdjust( diff --git a/sd/qa/unit/data/pptx/tdf165261.pptx b/sd/qa/unit/data/pptx/tdf165261.pptx new file mode 100644 index 000000000000..1f0ae1706401 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf165261.pptx differ diff --git a/sd/qa/unit/data/xml/n762695_1.xml b/sd/qa/unit/data/xml/n762695_1.xml index 8cd404c575be..02d3b735da86 100644 --- a/sd/qa/unit/data/xml/n762695_1.xml +++ b/sd/qa/unit/data/xml/n762695_1.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <XShapes> - <XShape positionX="3175" positionY="7197" sizeX="17991" sizeY="7619" type="com.sun.star.drawing.CustomShape" name="Freeform 15" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="3175" positionY="7197" sizeX="17991" sizeY="7619" type="com.sun.star.drawing.CustomShape" name="Freeform 15" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/> @@ -85,7 +85,7 @@ </PropertyValue> </CustomShapeGeometry> </XShape> - <XShape positionX="3387" positionY="4229" sizeX="17682" sizeY="9528" type="com.sun.star.drawing.CustomShape" name="Freeform 16" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="3387" positionY="4229" sizeX="17682" sizeY="9528" type="com.sun.star.drawing.CustomShape" name="Freeform 16" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/> diff --git a/sd/qa/unit/data/xml/n820786_0.xml b/sd/qa/unit/data/xml/n820786_0.xml index fee4d9667e52..4b2e06b3f347 100644 --- a/sd/qa/unit/data/xml/n820786_0.xml +++ b/sd/qa/unit/data/xml/n820786_0.xml @@ -64,7 +64,7 @@ </XShape> <XShape positionX="20904" positionY="11701" sizeX="846" sizeY="1057" type="com.sun.star.drawing.GroupShape" name="Group 43"> <XShapes> - <XShape positionX="21750" positionY="12758" sizeX="846" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 44" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="21750" positionY="12758" sizeX="846" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 44" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="DOUBLE" color="000000" distance="175" angle="450"/> @@ -148,7 +148,7 @@ </PropertyValue> </CustomShapeGeometry> </XShape> - <XShape positionX="21750" positionY="12758" sizeX="211" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 45" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="21750" positionY="12758" sizeX="211" sizeY="1057" type="com.sun.star.drawing.CustomShape" name="Oval 45" fontHeight="24.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="HATCH" fillColor="ffffff" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="DOUBLE" color="000000" distance="175" angle="450"/> diff --git a/sd/qa/unit/data/xml/tdf90338_0.xml b/sd/qa/unit/data/xml/tdf90338_0.xml index 792eca6f4cf1..741d6ca08071 100644 --- a/sd/qa/unit/data/xml/tdf90338_0.xml +++ b/sd/qa/unit/data/xml/tdf90338_0.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <XShapes> - <XShape positionX="5498" positionY="2715" sizeX="11630" sizeY="8623" type="com.sun.star.drawing.CustomShape" name="Freeform 3" fontHeight="11.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="e7e6e6" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="5498" positionY="2715" sizeX="11630" sizeY="8623" type="com.sun.star.drawing.CustomShape" name="Freeform 3" fontHeight="11.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="250" textRightDistance="250" textUpperDistance="125" textLowerDistance="125" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="e7e6e6" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/> diff --git a/sd/qa/unit/data/xml/tdf92001_0.xml b/sd/qa/unit/data/xml/tdf92001_0.xml index d5c59dd7ff0e..d67952eb1fe5 100644 --- a/sd/qa/unit/data/xml/tdf92001_0.xml +++ b/sd/qa/unit/data/xml/tdf92001_0.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <XShapes> - <XShape positionX="4826" positionY="4826" sizeX="19557" sizeY="12953" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="LEFT" textVerticalAdjust="CENTER" textLeftDistance="325" textRightDistance="325" textUpperDistance="200" textLowerDistance="200" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> + <XShape positionX="4826" positionY="4826" sizeX="19557" sizeY="12953" type="com.sun.star.drawing.CustomShape" fontHeight="18.000000" fontColor="000000" textAutoGrowHeight="false" textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" textHorizontalAdjust="BLOCK" textVerticalAdjust="CENTER" textLeftDistance="325" textRightDistance="325" textUpperDistance="200" textLowerDistance="200" textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" textAnimationStartInside="false" textAnimationStopInside="false" textWritingMode="LR_TB" fillStyle="SOLID" fillColor="729fcf" fillTransparence="0" fillTransparenceGradientName=""> <FillTransparenceGradient style="LINEAR" startColor="000000" endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" stepCount="0"/> <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/> diff --git a/sd/qa/unit/export-tests-ooxml4.cxx b/sd/qa/unit/export-tests-ooxml4.cxx index 4cf8e852267b..d9bea30c1334 100644 --- a/sd/qa/unit/export-tests-ooxml4.cxx +++ b/sd/qa/unit/export-tests-ooxml4.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/awt/FontUnderline.hpp> #include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp> #include <com/sun/star/drawing/FillStyle.hpp> +#include <com/sun/star/drawing/TextHorizontalAdjust.hpp> #include <com/sun/star/lang/IndexOutOfBoundsException.hpp> #include <com/sun/star/lang/Locale.hpp> #include <com/sun/star/text/GraphicCrop.hpp> @@ -1346,6 +1347,33 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testConvertWithMasterDeduplication) } } +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf162571HorzAnchor) +{ + createSdImpressDoc("pptx/tdf165261.pptx"); + saveAndReload(u"Impress Office Open XML"_ustr); + + uno::Reference<drawing::XShape> xShape(getShapeFromPage(1, 0), uno::UNO_QUERY); + uno::Reference<beans::XPropertySet> xProp(xShape, uno::UNO_QUERY); + + drawing::TextHorizontalAdjust eHori; + CPPUNIT_ASSERT(xProp->getPropertyValue(u"TextHorizontalAdjust"_ustr) >>= eHori); + CPPUNIT_ASSERT_EQUAL(drawing::TextHorizontalAdjust::TextHorizontalAdjust_LEFT, eHori); +} + +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf165261HorzAnchor) +{ + createSdImpressDoc("pptx/tdf165261.pptx"); + saveAndReload(u"Impress Office Open XML"_ustr); + + uno::Reference<drawing::XShapes> xGroupShape(getShapeFromPage(0, 0), uno::UNO_QUERY); + uno::Reference<drawing::XShape> xShape(xGroupShape->getByIndex(0), uno::UNO_QUERY); + + uno::Reference<beans::XPropertySet> xProp(xShape, uno::UNO_QUERY); + drawing::TextHorizontalAdjust eHori; + CPPUNIT_ASSERT(xProp->getPropertyValue(u"TextHorizontalAdjust"_ustr) >>= eHori); + CPPUNIT_ASSERT_EQUAL(drawing::TextHorizontalAdjust::TextHorizontalAdjust_CENTER, eHori); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit b1506104fcd1f0166caad07ec1a65223c243d524 Author: Jonathan Clark <[email protected]> AuthorDate: Thu Feb 13 02:46:49 2025 -0700 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#149089 sw: DOC/DOCX portions should not be snapped to char grid The Writer and Word text grid implementations differ significantly. Writer tries to align characters to grid cells for attractive typesetting. Word, on the other hand, adds extra space to each character based solely on the grid metrics, with no effort to align characters to the grid. The result looks odd, but emulating it is necessary in order to display most CJK Word documents (or non-CJK documents translated from CJK languages). Part of this mismatch was already addressed by tdf#161145. This change builds upon the previous work by updating Writer to no longer insert extra kerning portions when the MS_WORD_COMP_GRID_METRICS compatibility flag is set. Writer normally needs these portions in order to align the starts of successive portions to the grid. However, Word doesn't do this. This mismatch was causing layout issues manifesting as excessive indentation or whitespace inserted into text where none is expected. Change-Id: I3adf9001bdb49a69bdf760919d6f8810eac565d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181617 Reviewed-by: Jonathan Clark <[email protected]> Tested-by: Jenkins Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181633 Reviewed-by: Michael Stahl <[email protected]> diff --git a/sw/qa/extras/layout/data/tdf149089.fodt b/sw/qa/extras/layout/data/tdf149089.fodt new file mode 100644 index 000000000000..e3aa2bd353c3 --- /dev/null +++ b/sw/qa/extras/layout/data/tdf149089.fodt @@ -0,0 +1,121 @@ +<?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.4" office:mimetype="application/vnd.oasis.opendocument.text"> + <office:meta><meta:creation-date>2025-02-13T04:23:16.326282421</meta:creation-date><meta:generator>LibreOfficeDev/25.8.0.0.alpha0$Linux_X86_64 LibreOffice_project/1b9abff28de5e0e0d4ff3583facbb7db78b5f4be</meta:generator><dc:date>2025-02-13T04:27:41.902739947</dc:date><meta:editing-duration>PT4M23S</meta:editing-duration><meta:editing-cycles>7</meta:editing-cycles><meta:document-statistic meta:table-count="0" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="1" meta:word-count="3" meta:character-count="13" meta:non-whitespace-character-count="11"/></office:meta> + <office:settings> + <config:config-item-set config:name="ooo:configuration-settings"> + <config:config-item config:name="MsWordCompGridMetrics" config:type="boolean">true</config:config-item> + </config:config-item-set> + </office:settings> + <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="Noto Sans Arabic" svg:font-family="'Noto Sans Arabic'" style:font-adornments="Regular" style:font-family-generic="swiss" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans1" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/> + <style:font-face style:name="Noto Sans2" svg:font-family="'Noto Sans'" style:font-adornments="Regular" style:font-family-generic="swiss" 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.1181in" draw:shadow-offset-y="0.1181in" draw:start-line-spacing-horizontal="0.1114in" draw:start-line-spacing-vertical="0.1114in" draw:end-line-spacing-horizontal="0.1114in" draw:end-line-spacing-vertical="0.1114in" style:writing-mode="lr-tb" style:flow-with-text="false"/> + <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" loext:tab-stop-distance="0in" 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="Liberation Serif" fo:font-size="12pt" fo:language="en" fo:country="US" 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="Noto Sans1" 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" fo:hyphenation-keep="auto" loext:hyphenation-keep-type="column" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="0.4925in" style:writing-mode="page"/> + <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Liberation Serif" fo:font-size="12pt" fo:language="en" fo:country="US" 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="Noto Sans1" 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" loext:hyphenation-no-last-word="false" loext:hyphenation-word-char-count="5" loext:hyphenation-zone="no-limit"/> + </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"/> + <text:outline-style style:name="Outline"> + <text:outline-level-style text:level="1" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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" loext:num-list-format="%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.1965in" 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="Standard"> + <style:text-properties style:font-name="Noto Sans2" fo:font-size="60pt" style:font-name-asian="Noto Sans2" style:font-size-asian="60pt" style:font-name-complex="Noto Sans Arabic" style:font-size-complex="60pt"/> + </style:style> + <style:page-layout style:name="pm1"> + <style:page-layout-properties fo:page-width="8.2681in" fo:page-height="11.6929in" style:num-format="1" style:print-orientation="portrait" fo:margin-top="0.7874in" fo:margin-bottom="0.7874in" fo:margin-left="0.7874in" fo:margin-right="0.7874in" style:writing-mode="lr-tb" style:layout-grid-color="#c0c0c0" style:layout-grid-lines="20" style:layout-grid-base-height="0.278in" style:layout-grid-ruby-height="0.139in" style:layout-grid-mode="both" style:layout-grid-ruby-below="false" style:layout-grid-print="true" style:layout-grid-display="true" style:footnote-max-height="0in" loext:margin-gutter="0in"> + <style:footnote-sep style:width="0.0071in" style:distance-before-sep="0.0398in" style:distance-after-sep="0.0398in" 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> + <style:style style:name="dp1" style:family="drawing-page"> + <style:drawing-page-properties draw:background-size="full"/> + </style:style> + </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> + <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="P1">Test ألف Test</text:p> + </office:text> + </office:body> +</office:document> \ No newline at end of file diff --git a/sw/qa/extras/layout/layout5.cxx b/sw/qa/extras/layout/layout5.cxx index 73b0218a16e1..f749d188694d 100644 --- a/sw/qa/extras/layout/layout5.cxx +++ b/sw/qa/extras/layout/layout5.cxx @@ -1529,6 +1529,20 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter5, testTdf144450) CPPUNIT_ASSERT_LESS(sal_Int32(5765), nCase11); } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter5, testTdf149089) +{ + createSwDoc("tdf149089.fodt"); + auto pXmlDoc = parseLayoutDump(); + + // Tests that kern portions aren't inserted for lines-and-chars grids when the + // MS_WORD_COMP_GRID_METRICS compatibility flag is set. + // + // Without the fix, this would be 4 + sal_Int32 nKernPors + = getXPathContent(pXmlDoc, "count(//SwLinePortion[@type='PortionType::Kern'])").toInt32(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nKernPors); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx index 2cb76dc3f60c..cab7c33ed951 100644 --- a/sw/source/core/text/itrform2.cxx +++ b/sw/source/core/text/itrform2.cxx @@ -441,9 +441,14 @@ void SwTextFormatter::BuildPortions( SwTextFormatInfo &rInf ) // Asian grid stuff SwTextGridItem const*const pGrid(GetGridItem(m_pFrame->FindPageFrame())); - const bool bHasGrid = pGrid && rInf.SnapToGrid() && - GRID_LINES_CHARS == pGrid->GetGridType(); + // tdf#149089: For compatibility with MSO grid layout, do not insert kern portions to + // align successive portions to the char grid when MS_WORD_COMP_GRID_METRICS is set. + // See also tdf#161145. + const bool bHasGrid = pGrid && rInf.SnapToGrid() + && GRID_LINES_CHARS == pGrid->GetGridType() + && !GetTextFrame()->GetDoc().getIDocumentSettingAccess().get( + DocumentSettingId::MS_WORD_COMP_GRID_METRICS); const SwDoc & rDoc = rInf.GetTextFrame()->GetDoc(); const sal_uInt16 nGridWidth = bHasGrid ? GetGridWidth(*pGrid, rDoc) : 0; diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index f9f6136f31a4..6773e9e9fe9e 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -1885,6 +1885,8 @@ void SwWW8ImplReader::ImportDop() // tdf#155229 calculate minimum row height including horizontal border width m_rDoc.getIDocumentSettingAccess().set( DocumentSettingId::MIN_ROW_HEIGHT_INCL_BORDER, true); + // use Word-compatible CJK text grid metrics + m_rDoc.getIDocumentSettingAccess().set(DocumentSettingId::MS_WORD_COMP_GRID_METRICS, true); // Import Default Tabs tools::Long nDefTabSiz = m_xWDop->dxaTab; commit 97879ae28888a0ddcd2588c4bbcfd5d33cf1dd06 Author: Michael Weghorn <[email protected]> AuthorDate: Tue Feb 18 12:16:09 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#165211 android: Include tabbuttonsmirrored.ui This fixes a crash seen when trying to open the sample file from tdf#165211. From ADB log: 02-18 12:10:07.538 7343 7378 E libo:sal/osl/unx/file: failed to open /assets/share/config/soffice.cfg/svt/ui/tabbuttonsmirrored.ui 02-18 12:10:07.538 7343 7378 W vcl.builder: 1:include/vcl/widgetbuilder.hxx:74: Unable to read .ui file file:///assets/share/config/soffice.cfg/svt/ui/tabbuttonsmirrored.ui 02-18 12:10:07.538 7343 7378 F libc : /home/michi/development/git/libreoffice-WORKTREE-android/include/vcl/widgetbuilder.hxx:76: void WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::processUIFile(Widget *) [Widget = vcl::Window, WidgetPtr = VclPtr<vcl::Window>, MenuClass = PopupMenu, MenuPtr = VclPtr<PopupMenu>]: assertion "false && "missing ui file or missing gb_CppunitTest_use_uiconfigs dependency"" failed 02-18 12:10:07.538 7343 7381 I stderr : /home/michi/development/git/libreoffice-WORKTREE-android/include/vcl/widgetbuilder.hxx:76: void WidgetBuilder<vcl::Window, VclPtr<vcl::Window>, PopupMenu, VclPtr<PopupMenu>>::processUIFile(Widget *) [Widget = vcl::Window, WidgetPtr = VclPtr<vcl::Window>, MenuClass = PopupMenu, MenuPtr = VclPtr<PopupMenu>]: assertion "false && "missing ui file or missing gb_CppunitTest_use_uiconfigs dependency"" failed 02-18 12:10:07.538 7343 7378 E LibreOffice/androidinst: SalAbort: 'Unspecified application error' 02-18 12:10:07.538 7343 7378 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 7378 (Thread-2), pid 7343 (org.libreoffice) Change-Id: Ie3917043671f43af5e8251d4d9a05723c0c51690 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181828 Reviewed-by: Michael Weghorn <[email protected]> Tested-by: Jenkins (cherry picked from commit 45cfeed90899ff43015d9ee9e3bbf42ea07d8992) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181835 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/android/source/build.gradle b/android/source/build.gradle index 84b9f4233bd0..99d90870e047 100644 --- a/android/source/build.gradle +++ b/android/source/build.gradle @@ -181,6 +181,7 @@ task copyAssets(type: Copy) { '**/pbmenubutton.ui', '**/scrollbars.ui', '**/tabbuttons.ui', + '**/tabbuttonsmirrored.ui', '**/tabviewbar.ui' ] } commit 220943f6f4c3bbe3fbefb05aeb4abac7a15fc370 Author: Justin Luth <[email protected]> AuthorDate: Wed Feb 12 21:43:25 2025 -0500 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#164703 tdf#111969 sw Get*Correction: only mouse passes PixelPos This fixes my 24.8 commit 5bc7d0186d1a70990377a2f4c630fe11e2dfd166. All my focus was on mouse clicks, so I didn't realize that keyboard shortcuts were badly affected. Avoid all of that cursor -> pixel -> cursor madness and just don't provide a pixel position at all when it is a keyboard request for a context menu. I don't see how to create a unit test for this. (See earlier patchsets) Change-Id: Id1fe7d1c15ce590ea4f882be49cfe539971c8c69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181522 Reviewed-by: Justin Luth <[email protected]> Tested-by: Jenkins (cherry picked from commit 793853fbd1665e90ab91e9b45826174707617275) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181680 diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index 4429382416a4..8c367a171ee6 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -453,7 +453,7 @@ public: tools::Long SetHScrollMax(tools::Long lMax); void SpellError(LanguageType eLang); - bool ExecSpellPopup( const Point& rPt ); + bool ExecSpellPopup(const Point& rPt, bool bIsMouseEvent); void ExecSmartTagPopup( const Point& rPt ); DECL_DLLPRIVATE_LINK( OnlineSpellCallback, SpellCallbackInfo&, void ); diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index 0e24f7542f57..f8c8798c7a5b 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -5783,7 +5783,7 @@ void SwEditWin::Command( const CommandEvent& rCEvt ) aROPopup.Execute(this, aPixPos); } } - else if ( !m_rView.ExecSpellPopup( aDocPos ) ) + else if (!m_rView.ExecSpellPopup(aDocPos, rCEvt.IsMouseEvent())) SfxDispatcher::ExecutePopup(this, &aPixPos); } else if (m_pApplyTempl->nUndo < rSh.GetDoc()->GetIDocumentUndoRedo().GetUndoActionCount()) diff --git a/sw/source/uibase/uiview/viewling.cxx b/sw/source/uibase/uiview/viewling.cxx index ef7c2dfbc77c..ed62ec6fc742 100644 --- a/sw/source/uibase/uiview/viewling.cxx +++ b/sw/source/uibase/uiview/viewling.cxx @@ -620,7 +620,7 @@ IMPL_STATIC_LINK( AsyncExecute, ExecuteHdl_Impl, void*, p, void ) } //!! End of extra code for context menu modifying extensions -bool SwView::ExecSpellPopup(const Point& rPt) +bool SwView::ExecSpellPopup(const Point& rPt, bool bIsMouseEvent) { bool bRet = false; const SwViewOption* pVOpt = m_pWrtShell->GetViewOptions(); @@ -666,7 +666,8 @@ bool SwView::ExecSpellPopup(const Point& rPt) // if neither spell checking nor grammar checking provides suggestions use the // default context menu. bool bUseGrammarContext = false; - Reference< XSpellAlternatives > xAlt( m_pWrtShell->GetCorrection(&rPt, aToFill) ); + Reference<XSpellAlternatives> xAlt( + m_pWrtShell->GetCorrection(bIsMouseEvent ? &rPt : nullptr, aToFill)); ProofreadingResult aGrammarCheckRes; sal_Int32 nErrorInResult = -1; uno::Sequence< OUString > aSuggestions; @@ -674,7 +675,9 @@ bool SwView::ExecSpellPopup(const Point& rPt) if (!xAlt.is() || !xAlt->getAlternatives().hasElements()) { sal_Int32 nErrorPosInText = -1; - bCorrectionRes = m_pWrtShell->GetGrammarCorrection( aGrammarCheckRes, nErrorPosInText, nErrorInResult, aSuggestions, &rPt, aToFill ); + bCorrectionRes = m_pWrtShell->GetGrammarCorrection( + aGrammarCheckRes, nErrorPosInText, nErrorInResult, aSuggestions, + bIsMouseEvent ? &rPt : nullptr, aToFill); OUString aMessageText; if (nErrorInResult >= 0) aMessageText = aGrammarCheckRes.aErrors[ nErrorInResult ].aShortComment; commit 000b43070d70359b0d355b2cd71d67b37690582c Author: Sahil Gautam <[email protected]> AuthorDate: Thu Feb 13 03:52:25 2025 +0530 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#164886 register gallery/backgrounds with scp2 app background bitmap customization wasn't working on any release of 25.2. The issue was that the gallery/backgrounds folder wasn't registered under the package-file mechanism in the build system. so the backgrounds weren't included in the installation, hence this issue. Change-Id: I32c70ee80e074e927a59b51d1c5146230f72442f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181520 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit 0434700e36440082c9f23bb591924d9f57f449aa) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181826 Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/scp2/source/ooo/file_extra_ooo.scp b/scp2/source/ooo/file_extra_ooo.scp index 47a32179d766..3fcea35d1ce4 100644 --- a/scp2/source/ooo/file_extra_ooo.scp +++ b/scp2/source/ooo/file_extra_ooo.scp @@ -39,6 +39,7 @@ End #if defined (WITH_GALLERY_BUILD) GALLERY_FILELIST(sounds) +GALLERY_FILELIST(backgrounds) #endif commit 75b9fb10df4dff0894850177d53684873eb8621e Author: Xisco Fauli <[email protected]> AuthorDate: Mon Feb 10 10:52:43 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 lcms2: upgrade to 2.17 * external/lcms2/0001-Added-missing-export.patch.1 has been fixed uptream * external/lcms2/lcms2-windows_aarch64_outdir.patch.1 has been fixed upstream Downloaded from https://sourceforge.net/projects/lcms/files/lcms/2.17/lcms2-2.17.tar.gz/download Change-Id: Iae97a557f153279582878c8eb94dc2fab75b658d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181340 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins (cherry picked from commit e52899ed08405f67ea755271a2592ed0df516c77) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181413 Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/download.lst b/download.lst index b23cc00159ea..69b46b5176aa 100644 --- a/download.lst +++ b/download.lst @@ -467,8 +467,8 @@ LANGTAGREG_TARBALL := language-subtag-registry-2025-02-06.tar.bz2 # three static lines # so that git cherry-pick # will not run into conflicts -LCMS2_SHA256SUM := d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51 -LCMS2_TARBALL := lcms2-2.16.tar.gz +LCMS2_SHA256SUM := d11af569e42a1baa1650d20ad61d12e41af4fead4aa7964a01f93b08b53ab074 +LCMS2_TARBALL := lcms2-2.17.tar.gz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/lcms2/0001-Added-missing-export.patch.1 b/external/lcms2/0001-Added-missing-export.patch.1 deleted file mode 100644 index ad131e9533d3..000000000000 --- a/external/lcms2/0001-Added-missing-export.patch.1 +++ /dev/null @@ -1,25 +0,0 @@ -From f7b3c637c20508655f8b49935a4b556d52937b69 Mon Sep 17 00:00:00 2001 -From: Dirk Lemstra <[email protected]> -Date: Sun, 10 Dec 2023 20:31:32 +0100 -Subject: [PATCH] Added missing export. - ---- - src/cmsvirt.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cmsvirt.c b/src/cmsvirt.c -index 3d662b2..6615604 100644 ---- a/src/cmsvirt.c -+++ b/src/cmsvirt.c -@@ -676,7 +676,7 @@ cmsHPROFILE CMSEXPORT cmsCreate_sRGBProfile(void) - * - * This virtual profile cannot be saved as an ICC file - */ --cmsHPROFILE cmsCreate_OkLabProfile(cmsContext ctx) -+cmsHPROFILE CMSEXPORT cmsCreate_OkLabProfile(cmsContext ctx) - { - cmsStage* XYZPCS = _cmsStageNormalizeFromXyzFloat(ctx); - cmsStage* PCSXYZ = _cmsStageNormalizeToXyzFloat(ctx); --- -2.44.0.windows.1 - diff --git a/external/lcms2/ExternalPackage_lcms2.mk b/external/lcms2/ExternalPackage_lcms2.mk index 62e2ebad8981..a71b31ef7395 100644 --- a/external/lcms2/ExternalPackage_lcms2.mk +++ b/external/lcms2/ExternalPackage_lcms2.mk @@ -17,7 +17,7 @@ $(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.2.dy else ifeq ($(COM),MSC) $(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/lcms2.dll,bin/lcms2.dll)) else -$(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.16)) +$(eval $(call gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.17)) endif endif # $(DISABLE_DYNLOADING) diff --git a/external/lcms2/UnpackedTarball_lcms2.mk b/external/lcms2/UnpackedTarball_lcms2.mk index f44683e03809..f99fc708a33e 100644 --- a/external/lcms2/UnpackedTarball_lcms2.mk +++ b/external/lcms2/UnpackedTarball_lcms2.mk @@ -20,12 +20,8 @@ ifneq ($(MSYSTEM),) $(eval $(call gb_UnpackedTarball_set_patchflags,lcms2,--binary)) endif -# external/lcms2/0001-Added-missing-export.patch.1: -# backport of https://github.com/mm2/Little-CMS/commit/f7b3c637c20508655f8b49935a4b556d52937b69 $(eval $(call gb_UnpackedTarball_add_patches,lcms2,\ - external/lcms2/0001-Added-missing-export.patch.1 \ external/lcms2/lcms2-2.4-windows.patch \ - external/lcms2/lcms2-windows_aarch64_outdir.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 b/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 deleted file mode 100644 index aa27b1b77923..000000000000 --- a/external/lcms2/lcms2-windows_aarch64_outdir.patch.1 +++ /dev/null @@ -1,26 +0,0 @@ -diff -ur lcms2.org/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj lcms2/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj ---- lcms2.org/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj 2023-12-08 18:49:59.819483000 +0100 -+++ lcms2/Projects/VC2019/lcms2_DLL/lcms2_DLL.vcxproj 2023-12-08 18:50:59.460115500 +0100 -@@ -92,6 +92,7 @@ - <_ProjectFileVersion>10.0.21006.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..in\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..in\</OutDir> -+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">..\..\..in\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)_$(Platform)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(Configuration)_$(Platform)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)_$(Platform)\</IntDir> -@@ -100,6 +101,7 @@ - <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..in\</OutDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..in\</OutDir> -+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">..\..\..in\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)_$(Platform)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(Configuration)_$(Platform)\</IntDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Configuration)_$(Platform)\</IntDir> -@@ -340,4 +342,4 @@ - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> --</Project> -\ No newline at end of file -+</Project> commit e154b40324fff63c3e762fb6f10dfad4301274e3 Author: Christian Lohmaier <[email protected]> AuthorDate: Wed Feb 12 21:07:24 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#165149 fix installing Visual Studio C++ runtime dlls/merge modules regression from 1cabb20fad8303d16e25957ee245970f37ad2f82 previously the code had the foreach loop only for the cygwin case, but it was added in a way that looked more like a leftover/temporary addition to add more fine-grained logging that was left in the code on accident rather than intentionally (indents weren't adjusted for example) in a commit that talked about adding support for filesystems without short names (fac37861914f255c55a196a154575a0d7e143ac8) and the code before that one also passed all the tables at once – but it turns out that there actually is a functional difference. Description for msidb's -i option reads: "Import text archive files from folder into database. Table names for import are file names 8 characters long with an ".idt" extension. Longer names are truncated to 8 characters if supplied by command for import. Standard wild card specifications may be used." Maybe that truncation mechansism doesn't work as expected when specifying more than one table… Instead of messing around with that however: Play it safe and use the method that was used for the last 14 years Change-Id: If1bdc1f01f4ccdee13277267f5407046cba4ca03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181511 Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Jenkins (cherry picked from commit 7fa9691dc204cef02b14141697f1a68330dcdf30) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181519 Reviewed-by: Ilmari Lauhakangas <[email protected]> diff --git a/solenv/bin/modules/installer/windows/mergemodule.pm b/solenv/bin/modules/installer/windows/mergemodule.pm index 2fc8a98c0211..7f5055b70217 100644 --- a/solenv/bin/modules/installer/windows/mergemodule.pm +++ b/solenv/bin/modules/installer/windows/mergemodule.pm @@ -535,23 +535,26 @@ sub merge_mergemodules_into_msi_database installer::logger::include_timestamp_into_logfile(" Performance Info: Before including tables"); - $systemcall = $msidb . " -d " . $msifilename . " -f " . $workdir . " -i " . $workingtables. " " . $executetables; - # msidb.exe really wants backslashes - $systemcall =~ s/\//\\/g; + # trying to import all tables at once seems to work fine, but creates a broken installer tdf#165149 + foreach my $table (split / /, $workingtables . ' ' . $executetables) { + $systemcall = $msidb . " -d " . $msifilename . " -f " . $workdir . " -i " . $table; + # msidb.exe really wants backslashes + $systemcall =~ s/\//\\/g; - $systemcall_output = `$systemcall`; - $returnvalue = $? >> 8; + $systemcall_output = `$systemcall`; + $returnvalue = $? >> 8; - if ($returnvalue) - { - $infoline = "ERROR: Could not execute $systemcall - returncode: $returnvalue - output: $systemcall_output "; - push( @installer::globals::logfileinfo, $infoline); - installer::exiter::exit_program("ERROR: Could not include tables into msi database: $msifilename !", "merge_mergemodules_into_msi_database"); - } - else - { - $infoline = "Success: Executed $systemcall successfully! "; - push( @installer::globals::logfileinfo, $infoline); + if ($returnvalue) + { + $infoline = "ERROR: Could not execute $systemcall - returncode: $returnvalue - output: $systemcall_output "; + push( @installer::globals::logfileinfo, $infoline); + installer::exiter::exit_program("ERROR: Could not include tables into msi database: $msifilename !", "merge_mergemodules_into_msi_database"); + } + else + { + $infoline = "Success: Executed $systemcall successfully! "; + push( @installer::globals::logfileinfo, $infoline); + } } installer::logger::include_timestamp_into_logfile(" Performance Info: After including tables"); commit 3f15d0718e42669478febf68bb8101feee9e1c6d Author: Michael Weghorn <[email protected]> AuthorDate: Fri Feb 14 10:38:13 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 tdf#165238 qt: Rely on Qt for "text/plain" and UTF-8 clipboard text QMimeData::text implements handling for the "text/plain;charset=utf-8" and "text/plain" MIME types (see [1]). Rely on that instead of implementing our own handling for these MIME types. This fixes copying Greek characters from Firefox as plain text into Writer with qt6 on Wayland (tdf#165238). This approach was already mentioned as an idea in commit 5b3227fac58dcbd588e2389e205679cd77842bac Author: Michael Weghorn <[email protected]> Date: Wed Apr 6 13:51:59 2022 +0200 tdf#147285 qt: Prefer "text/plain;charset=utf-8" over "text/plain" > (An alternative solution to adding our own handling for > "text/plain;charset=utf-8" and making assumptions for the > encoding of "text/plain" data would be to let Qt handle > this and just call `QMimeData::text()` for the > `m_bProvideUTF16FromOtherEncoding=true` case > in `QtTransferable::getTransferData`. > Since qtbase commit 589a01ff6b1eacf81e74a5fc4801572135214f43 > ("QMimeData: Prefer UTF-8 when multiple charsets are available", > contained in Qt >= 5.13), that one handles MIME type > "text/plain;charset=utf-8" in addition to "text/plain".) [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/kernel/qmimedata.cpp?id=6c61d7b0f804ae5c048af95abef4d41ecc8862df#n383 Change-Id: Iee695f62e836f3a8776b719ca95afb8fbddea82f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181660 Tested-by: Jenkins Reviewed-by: Michael Weghorn <[email protected]> (cherry picked from commit ec95d529b51e95b074adaafb9f113904fed636c7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181672 Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/vcl/qt5/QtTransferable.cxx b/vcl/qt5/QtTransferable.cxx index 16f24763cf6e..6d4f002ec2d0 100644 --- a/vcl/qt5/QtTransferable.cxx +++ b/vcl/qt5/QtTransferable.cxx @@ -131,23 +131,16 @@ css::uno::Any SAL_CALL QtTransferable::getTransferData(const css::datatransfer:: if (rFlavor.MimeType == "text/plain;charset=utf-16") { OUString aString; - // use existing UTF-16 encoded text/plain or convert to UTF-16 as needed + // use existing UTF-16 encoded MIME data if present if (m_pMimeData->hasFormat("text/plain;charset=utf-16")) { QByteArray aByteData(m_pMimeData->data(toQString(rFlavor.MimeType))); aString = OUString(reinterpret_cast<const sal_Unicode*>(aByteData.data()), aByteData.size() / 2); } - else if (m_pMimeData->hasFormat("text/plain;charset=utf-8")) - { - QByteArray aByteData(m_pMimeData->data(QStringLiteral("text/plain;charset=utf-8"))); - aString = OUString::fromUtf8(reinterpret_cast<const char*>(aByteData.data())); - } else { - QByteArray aByteData(m_pMimeData->data(QStringLiteral("text/plain"))); - aString = OUString(reinterpret_cast<const char*>(aByteData.data()), aByteData.size(), - osl_getThreadTextEncoding()); + aString = toOUString(m_pMimeData->text()); } aAny <<= aString; } commit 062ca40bf04d6173c35bd8a3d3c25d269efc2def Author: Christian Lohmaier <[email protected]> AuthorDate: Fri Feb 14 21:05:27 2025 +0100 Commit: Andras Timar <[email protected]> CommitDate: Wed Feb 19 12:07:01 2025 +0100 QuickLook Preview/Thumbnail version should match the app's version appstore verification complains about CFBundleVersion Mismatch / CFBundleShortVersionString Mismatch and while submissions aren't rejected yet "you may want to correct the following issues in your next delivery"… Change-Id: I19f7db194c1f027f91eb84100955f85cd0bfd545 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181681 Reviewed-by: Christian Lohmaier <[email protected]> Tested-by: Jenkins (cherry picked from commit 41df8ca6cb7ec210cf391ff27fce1a6eb36de33b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181731 Reviewed-by: Xisco Fauli <[email protected]> diff --git a/extensions/source/macosx/quicklookpreview/appex/Info.plist.in b/extensions/source/macosx/quicklookpreview/appex/Info.plist.in index 2010e8a1bca2..5892fae09fce 100644 --- a/extensions/source/macosx/quicklookpreview/appex/Info.plist.in +++ b/extensions/source/macosx/quicklookpreview/appex/Info.plist.in @@ -24,13 +24,13 @@ <key>CFBundlePackageType</key> <string>XPC!</string> <key>CFBundleShortVersionString</key> - <string>1.0</string> + <string>@MACOSX_BUNDLE_SHORTVERSION@</string> <key>CFBundleSupportedPlatforms</key> <array> <string>MacOSX</string> </array> <key>CFBundleVersion</key> - <string>1</string> + <string>@MACOSX_BUNDLE_VERSION@</string> <key>LSMinimumSystemVersion</key> <string>@[email protected]</string> <key>DTXcodeBuild</key> diff --git a/extensions/source/macosx/quicklookthumbnail/appex/Info.plist.in b/extensions/source/macosx/quicklookthumbnail/appex/Info.plist.in index 7ae631f1dc59..eb7366cdb294 100644 --- a/extensions/source/macosx/quicklookthumbnail/appex/Info.plist.in +++ b/extensions/source/macosx/quicklookthumbnail/appex/Info.plist.in @@ -24,13 +24,13 @@ <key>CFBundlePackageType</key> <string>XPC!</string> <key>CFBundleShortVersionString</key> - <string>1.0</string> + <string>@MACOSX_BUNDLE_SHORTVERSION@</string> <key>CFBundleSupportedPlatforms</key> <array> <string>MacOSX</string> </array> <key>CFBundleVersion</key> - <string>1</string> + <string>@MACOSX_BUNDLE_VERSION@</string> <key>LSMinimumSystemVersion</key> <string>@[email protected]</string> <key>DTXcodeBuild</key>
