Repository.mk                                                    |    4 
 cui/uiconfig/ui/numberingformatpage.ui                           |    5 
 desktop/Module_desktop.mk                                        |    9 
 sc/common_unoapi_tests.mk                                        |    4 
 sc/qa/extras/scsolverobj.cxx                                     |    2 
 sc/qa/uitest/calc_tests4/exportToPDF.py                          |   10 
 sc/source/core/data/table2.cxx                                   |    1 
 sd/qa/uitest/impress_tests/exportToPDF.py                        |    9 
 sd/qa/unit/data/pptx/smartart-tdf134221.pptx                     |binary
 sd/qa/unit/tiledrendering/tiledrendering.cxx                     |   44 +
 static/CustomTarget_emscripten_fs_image.mk                       |    1 
 svgio/qa/cppunit/data/tdf160386.svg                              |    2 
 sw/CppunitTest_sw_cjk.mk                                         |   77 ++
 sw/Module_sw.mk                                                  |    1 
 sw/UIConfig_swriter.mk                                           |    1 
 sw/inc/swabstdlg.hxx                                             |    1 
 sw/qa/extras/cjk/cjk.cxx                                         |  121 +++
 sw/qa/extras/odfimport/odfimport.cxx                             |   25 
 sw/qa/extras/ooxmlexport/ooxmlexport21.cxx                       |   26 
 sw/qa/extras/unowriter/unowriter.cxx                             |   10 
 sw/qa/extras/ww8export/data/i120158.doc                          |binary
 sw/qa/extras/ww8export/data/tdf120629.odt                        |binary
 sw/qa/extras/ww8export/ww8export.cxx                             |   31 
 sw/qa/extras/ww8export/ww8export4.cxx                            |    8 
 sw/qa/uitest/writer_tests4/exportToPDF.py                        |    5 
 sw/qa/unit/data/sw-dialogs-test.txt                              |    1 
 sw/source/core/edit/eddel.cxx                                    |    2 
 sw/source/ui/dialog/swdlgfact.cxx                                |    3 
 sw/source/ui/index/swuiidxmrk.cxx                                |   15 
 sw/source/uibase/inc/DropDownFieldDialog.hxx                     |    2 
 sw/source/uibase/inc/wrtsh.hxx                                   |    2 
 sw/source/uibase/wrtsh/wrtsh2.cxx                                |   22 
 sw/uiconfig/swriter/ui/charurlpage.ui                            |  349 
----------
 sw/uiconfig/swriter/ui/insertcaption.ui                          |    5 
 vcl/jsdialog/enabled.cxx                                         |    1 
 vcl/qa/cppunit/BackendTest.cxx                                   |    2 
 vcl/qa/cppunit/pdfexport/data/tdf124116-hebrew-track-untrack.odt |binary
 vcl/qa/cppunit/pdfexport/pdfexport.cxx                           |   15 
 vcl/unx/generic/fontmanager/fontconfig.cxx                       |   17 
 vcl/vcl.common.component.headless                                |    2 
 40 files changed, 346 insertions(+), 489 deletions(-)

New commits:
commit 228cae732368ef35156a7dd707305d8f4a34fa6c
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Dec 10 16:01:24 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:45:47 2026 +0100

    add an accessible-name to the preview in the numbering format page
    
    Change-Id: I458fccfb7cb0a74faca41852151950075dd92cb0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195390
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/cui/uiconfig/ui/numberingformatpage.ui 
b/cui/uiconfig/ui/numberingformatpage.ui
index a7779057f1bb..9338443ba1ff 100644
--- a/cui/uiconfig/ui/numberingformatpage.ui
+++ b/cui/uiconfig/ui/numberingformatpage.ui
@@ -671,6 +671,11 @@
                           <object class="GtkDrawingArea" id="preview">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <child internal-child="accessible">
+                              <object class="AtkObject" id="preview-atkobject">
+                                <property name="AtkObject::accessible-name" 
translatable="yes" 
context="numberingformatpage|preview-atkobject">Preview</property>
+                              </object>
+                            </child>
                           </object>
                         </child>
                       </object>
commit 1c33323154c495d5562d8187efaf633ef58b8f50
Author:     Caolán McNamara <[email protected]>
AuthorDate: Tue Dec 16 21:43:32 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:45:31 2026 +0100

    tdf#170034: cells don't get drawn on particular autofilter combination
    
    - hidden area has to include max doc row.
    - on fallback return with no visible block for target row, basically return 
end of previous visible block.
    
    Change-Id: Ie91cde71448f02e865484335ede96cf29700955a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195755
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Noel Grandin <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>
    (cherry picked from commit e134da4a5ab5694faf9871a0e768412e28435a61)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195847
    Tested-by: Jenkins

diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 1d2455c57deb..cf769e4ca242 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -4482,6 +4482,7 @@ SCROW ScTable::GetRowForHeightPixels(SCROW nStartRow, 
tools::Long& rStartRowHeig
         nSumPx += nCommonPixels;
         nRow = nLastCommon;
     }
+    rStartRowHeightPx = nSumPx;
     return -1;
 }
 
commit f12051e5f3997462c8b7d8cc0fc78753cfaa1147
Author:     Caolán McNamara <[email protected]>
AuthorDate: Mon Dec 15 16:59:53 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:45:19 2026 +0100

    make simple activate case of DropDownFieldDialog async
    
    Change-Id: If3a36540976014774b4cbf84f52e2d3de28b96b6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195679
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index 48d806486d3c..bac073b696b1 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -299,6 +299,7 @@ protected:
 public:
     virtual bool          PrevButtonPressed() const = 0;
     virtual bool          NextButtonPressed() const = 0;
+    virtual void Apply() = 0;
 };
 
 class AbstractSwLabDlg  : public SfxAbstractTabDialog
diff --git a/sw/source/ui/dialog/swdlgfact.cxx 
b/sw/source/ui/dialog/swdlgfact.cxx
index a29d8e86a175..6bb52bb5ce39 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -457,10 +457,11 @@ VclPtr<SfxAbstractTabDialog> 
SwAbstractDialogFactory_Impl::CreateSwFootNoteOptio
 namespace
 {
 class AbstractDropDownFieldDialog_Impl
-    : public vcl::AbstractDialogImpl_Sync<AbstractDropDownFieldDialog, 
sw::DropDownFieldDialog>
+    : public vcl::AbstractDialogImpl_Async<AbstractDropDownFieldDialog, 
sw::DropDownFieldDialog>
 {
 public:
     using AbstractDialogImpl_BASE::AbstractDialogImpl_BASE;
+    void Apply() override { m_pDlg->Apply(); }
     bool PrevButtonPressed() const override { return 
m_pDlg->PrevButtonPressed(); }
     bool NextButtonPressed() const override { return 
m_pDlg->NextButtonPressed(); }
 };
diff --git a/sw/source/uibase/inc/DropDownFieldDialog.hxx 
b/sw/source/uibase/inc/DropDownFieldDialog.hxx
index b8b60f20c293..07b9e494d0a6 100644
--- a/sw/source/uibase/inc/DropDownFieldDialog.hxx
+++ b/sw/source/uibase/inc/DropDownFieldDialog.hxx
@@ -43,7 +43,6 @@ class DropDownFieldDialog final : public 
weld::GenericDialogController
     DECL_LINK(EditHdl, weld::Button&, void);
     DECL_LINK(PrevHdl, weld::Button&, void);
     DECL_LINK(NextHdl, weld::Button&, void);
-    void    Apply();
     DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
 public:
     DropDownFieldDialog(weld::Widget *pParent, SwWrtShell &rSh,
@@ -51,6 +50,7 @@ public:
     virtual ~DropDownFieldDialog() override;
     bool PrevButtonPressed() const;
     bool NextButtonPressed() const;
+    void Apply();
     virtual short run() override
     {
         short nRet = GenericDialogController::run();
diff --git a/sw/source/uibase/inc/wrtsh.hxx b/sw/source/uibase/inc/wrtsh.hxx
index 5e387dd30171..f623299e3ac6 100644
--- a/sw/source/uibase/inc/wrtsh.hxx
+++ b/sw/source/uibase/inc/wrtsh.hxx
@@ -427,6 +427,8 @@ typedef bool (SwWrtShell::*FNSimpleMove)();
     bool    StartInputFieldDlg(SwField*, bool bPrevButton, bool bNextButton, 
weld::Widget* pParentWin, FieldDialogPressedButton* pPressedButton = nullptr);
     // update DropDown fields
     bool    StartDropDownFieldDlg(SwField*, bool bPrevButton, bool 
bNextButton, weld::Widget* pParentWin, FieldDialogPressedButton* pPressedButton 
= nullptr);
+    // update single DropDown field
+    void    EditDropDownFieldDlg(SwField*, weld::Widget* pParentWin);
 
     //"Handler" for changes at DrawView - for controls.
     virtual void DrawSelChanged( ) override;
diff --git a/sw/source/uibase/wrtsh/wrtsh2.cxx 
b/sw/source/uibase/wrtsh/wrtsh2.cxx
index ddf3d5966ec0..3e61f3430702 100644
--- a/sw/source/uibase/wrtsh/wrtsh2.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh2.cxx
@@ -304,6 +304,26 @@ bool SwWrtShell::StartInputFieldDlg(SwField* pField, bool 
bPrevButton, bool bNex
     return bRet;
 }
 
+void SwWrtShell::EditDropDownFieldDlg(SwField* pField, weld::Widget* 
pParentWin)
+{
+    SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create();
+    VclPtr<AbstractDropDownFieldDialog> 
pDlg(pFact->CreateDropDownFieldDialog(pParentWin, *this, pField, false, false));
+
+    pDlg->StartExecuteAsync([pDlg, this](sal_Int32 nRet) {
+        if (nRet == RET_OK)
+            pDlg->Apply();
+
+        pDlg->disposeOnce();
+
+        GetWin()->PaintImmediately();
+
+        if (nRet == RET_YES)
+        {
+            GetView().GetViewFrame().GetDispatcher()->Execute(FN_EDIT_FIELD, 
SfxCallMode::SYNCHRON);
+        }
+    });
+}
+
 bool SwWrtShell::StartDropDownFieldDlg(SwField* pField, bool bPrevButton, bool 
bNextButton,
                                        weld::Widget* pParentWin, 
SwWrtShell::FieldDialogPressedButton* pPressedButton)
 {
@@ -513,7 +533,7 @@ void SwWrtShell::ClickToField(const SwField& rField, bool 
bExecHyperlinks)
             StartInputFieldDlg(const_cast<SwField*>(&rField), false, false, 
GetView().GetFrameWeld());
         break;
     case SwFieldIds::Dropdown :
-        StartDropDownFieldDlg(const_cast<SwField*>(&rField), false, false, 
GetView().GetFrameWeld());
+        EditDropDownFieldDlg(const_cast<SwField*>(&rField), 
GetView().GetFrameWeld());
     break;
     default:
         SAL_WARN_IF(rField.IsClickable(), "sw", "unhandled clickable field!");
commit 46182e5c3c34c94d8a2c137268f1b51d74d6e2f6
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 11:52:10 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:45:00 2026 +0100

    move writer tests using CJK fonts to new target
    
    where adding a new cjk font to the bundled fonts triggers
    an abort from:
    gb_CppunitTest_set_non_application_font_use,...,abort
    
    because the docs require glyph fallback to render, but without a CJK
    font in the application fonts glyph fallback doesn't actually happen.
    But once one is added, then the fallback is detected and the check
    fires.
    
    Change-Id: If02a2c1eefd6f5b6e4a19ca46f359cce466662f1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195597
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/CppunitTest_sw_cjk.mk b/sw/CppunitTest_sw_cjk.mk
new file mode 100644
index 000000000000..2324d58ffc10
--- /dev/null
+++ b/sw/CppunitTest_sw_cjk.mk
@@ -0,0 +1,77 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sw_cjk))
+
+$(eval $(call gb_CppunitTest_use_common_precompiled_header,sw_cjk))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sw_cjk, \
+    sw/qa/extras/cjk/cjk \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sw_cjk, \
+    comphelper \
+    editeng \
+    cppu \
+    cppuhelper \
+    sal \
+    svt \
+    sfx \
+    subsequenttest \
+    svl \
+    sw \
+    swqahelper \
+    test \
+    unotest \
+    vcl \
+    tl \
+    utl \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,sw_cjk,\
+    boost_headers \
+    libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sw_cjk,\
+    -I$(SRCDIR)/sw/inc \
+    -I$(SRCDIR)/sw/source/core/inc \
+    -I$(SRCDIR)/sw/source/uibase/inc \
+    -I$(SRCDIR)/sw/qa/inc \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_system_win32_libs,sw_cjk,\
+    ole32 \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sw_cjk,\
+    udkapi \
+    offapi \
+    oovbaapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sw_cjk))
+$(eval $(call gb_CppunitTest_use_vcl,sw_cjk))
+
+$(eval $(call gb_CppunitTest_use_rdb,sw_cjk,services))
+
+$(eval $(call gb_CppunitTest_use_configuration,sw_cjk))
+
+$(eval $(call gb_CppunitTest_add_arguments,sw_cjk, \
+    
-env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"$$$${$(gb_Helper_LIBRARY_PATH_VAR)+=$$$$$(gb_Helper_LIBRARY_PATH_VAR)}"
 \
+))
+
+$(eval $(call gb_CppunitTest_use_custom_headers,sw_cjk,\
+    officecfg/registry \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 2d0aa1bdd497..583d9fccee87 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -62,6 +62,7 @@ $(eval $(call gb_Module_add_check_targets,sw,\
 $(eval $(call gb_Module_add_slowcheck_targets,sw,\
        $(if $(and $(filter $(COM),MSC),$(MERGELIBS)),, \
                CppunitTest_sw_uwriter) \
+    CppunitTest_sw_cjk \
     CppunitTest_sw_rtfexport \
     CppunitTest_sw_rtfexport2 \
     CppunitTest_sw_rtfexport3 \
diff --git a/sw/qa/extras/cjk/cjk.cxx b/sw/qa/extras/cjk/cjk.cxx
new file mode 100644
index 000000000000..21f99af3d570
--- /dev/null
+++ b/sw/qa/extras/cjk/cjk.cxx
@@ -0,0 +1,121 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <swmodeltestbase.hxx>
+
+#include <config_features.h>
+
+namespace
+{
+class Test : public SwModelTestBase
+{
+public:
+    Test()
+        : SwModelTestBase(u"/sw/qa/extras/cjk/data/"_ustr)
+    {
+    }
+};
+
+CPPUNIT_TEST_FIXTURE(Test, testTdf101729)
+{
+    createSwDoc("tdf101729.odt");
+    xmlDocUniquePtr pXmlDoc = parseLayoutDump();
+    sal_Int32 l
+        = getXPath(pXmlDoc, "/root/page/body/tab/row/cell[1]/infos/bounds", 
"left").toInt32();
+    sal_Int32 w
+        = getXPath(pXmlDoc, "/root/page/body/tab/row/cell[1]/infos/bounds", 
"width").toInt32();
+    sal_Int32 x
+        = getXPath(pXmlDoc, 
"/root/page/body/tab/row/cell[1]/txt/infos/bounds", "left").toInt32();
+    // Make sure the text does not go outside and verify it is centered roughly
+    CPPUNIT_ASSERT(l + w / 4 < x);
+    CPPUNIT_ASSERT(x < l + 3 * w / 4);
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testTdf115079)
+{
+    createSwDoc("tdf115079.odt");
+    // This document caused segfault when layouting
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testMsWordUlTrailSpace)
+{
+    createSwDoc("UnderlineTrailingSpace.docx");
+    {
+        uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, 
uno::UNO_QUERY_THROW);
+        uno::Reference<beans::XPropertySet> xSettings(
+            xFactory->createInstance(u"com.sun.star.document.Settings"_ustr), 
uno::UNO_QUERY_THROW);
+        CPPUNIT_ASSERT_EQUAL(uno::Any(true),
+                             
xSettings->getPropertyValue(u"MsWordUlTrailSpace"_ustr));
+    }
+
+    // Test also after save-and-reload:
+    saveAndReload(TestFilter::DOCX);
+    {
+        uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, 
uno::UNO_QUERY_THROW);
+        uno::Reference<beans::XPropertySet> xSettings(
+            xFactory->createInstance(u"com.sun.star.document.Settings"_ustr), 
uno::UNO_QUERY_THROW);
+        CPPUNIT_ASSERT_EQUAL(uno::Any(true),
+                             
xSettings->getPropertyValue(u"MsWordUlTrailSpace"_ustr));
+    }
+
+    // Check that the compat setting is exported in OOXML
+    xmlDocUniquePtr pXmlSettings = parseExport("word/settings.xml");
+    assertXPath(pXmlSettings, "/w:settings/w:compat/w:ulTrailSpace");
+}
+
+DECLARE_WW8EXPORT_TEST(testWw8Cjklist30, "cjklist30.doc")
+{
+    sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+    CPPUNIT_ASSERT_EQUAL(style::NumberingType::TIAN_GAN_ZH, numFormat);
+}
+
+DECLARE_WW8EXPORT_TEST(testWw8Cjklist31, "cjklist31.doc")
+{
+    sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+    CPPUNIT_ASSERT_EQUAL(style::NumberingType::DI_ZI_ZH, numFormat);
+}
+
+DECLARE_WW8EXPORT_TEST(testWw8Cjklist34, "cjklist34.doc")
+{
+    sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_UPPER_ZH_TW, numFormat);
+}
+
+DECLARE_WW8EXPORT_TEST(testWw8Cjklist35, "cjklist35.doc")
+{
+    sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_LOWER_ZH, numFormat);
+}
+
+DECLARE_WW8EXPORT_TEST(testTdf118564, "tdf118564.doc")
+{
+    sal_Int16 numFormat = getNumberingTypeOfParagraph(3);
+    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_LOWER_ZH, numFormat);
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testTdf77964)
+{
+    createSwDoc("tdf77964.doc");
+    saveAndReload(TestFilter::DOC);
+    // both images were loading as AT_PARA instead of AS_CHAR. Image2 visually 
had text wrapping.
+    CPPUNIT_ASSERT_EQUAL(
+        text::TextContentAnchorType_AS_CHARACTER,
+        getProperty<text::TextContentAnchorType>(getShapeByName(u"Image2"), 
u"AnchorType"_ustr));
+}
+
+CPPUNIT_TEST_FIXTURE(Test, tdf167455)
+{
+    // crashes at import time on macOS
+    createSwDoc("tdf167455.odt");
+    CPPUNIT_ASSERT_EQUAL(1, getPages());
+}
+
+} // end of anonymous namespace
+CPPUNIT_PLUGIN_IMPLEMENT();
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/extras/ooxmlexport/data/UnderlineTrailingSpace.docx 
b/sw/qa/extras/cjk/data/UnderlineTrailingSpace.docx
similarity index 100%
rename from sw/qa/extras/ooxmlexport/data/UnderlineTrailingSpace.docx
rename to sw/qa/extras/cjk/data/UnderlineTrailingSpace.docx
diff --git a/sw/qa/extras/ww8export/data/cjklist30.doc 
b/sw/qa/extras/cjk/data/cjklist30.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/cjklist30.doc
rename to sw/qa/extras/cjk/data/cjklist30.doc
diff --git a/sw/qa/extras/ww8export/data/cjklist31.doc 
b/sw/qa/extras/cjk/data/cjklist31.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/cjklist31.doc
rename to sw/qa/extras/cjk/data/cjklist31.doc
diff --git a/sw/qa/extras/ww8export/data/cjklist34.doc 
b/sw/qa/extras/cjk/data/cjklist34.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/cjklist34.doc
rename to sw/qa/extras/cjk/data/cjklist34.doc
diff --git a/sw/qa/extras/ww8export/data/cjklist35.doc 
b/sw/qa/extras/cjk/data/cjklist35.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/cjklist35.doc
rename to sw/qa/extras/cjk/data/cjklist35.doc
diff --git a/sw/qa/extras/odfimport/data/tdf101729.odt 
b/sw/qa/extras/cjk/data/tdf101729.odt
similarity index 100%
rename from sw/qa/extras/odfimport/data/tdf101729.odt
rename to sw/qa/extras/cjk/data/tdf101729.odt
diff --git a/sw/qa/extras/odfimport/data/tdf115079.odt 
b/sw/qa/extras/cjk/data/tdf115079.odt
similarity index 100%
rename from sw/qa/extras/odfimport/data/tdf115079.odt
rename to sw/qa/extras/cjk/data/tdf115079.odt
diff --git a/sw/qa/extras/ww8export/data/tdf118564.doc 
b/sw/qa/extras/cjk/data/tdf118564.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/tdf118564.doc
rename to sw/qa/extras/cjk/data/tdf118564.doc
diff --git a/sw/qa/extras/odfimport/data/tdf167455.odt 
b/sw/qa/extras/cjk/data/tdf167455.odt
similarity index 100%
rename from sw/qa/extras/odfimport/data/tdf167455.odt
rename to sw/qa/extras/cjk/data/tdf167455.odt
diff --git a/sw/qa/extras/ww8export/data/tdf77964.doc 
b/sw/qa/extras/cjk/data/tdf77964.doc
similarity index 100%
rename from sw/qa/extras/ww8export/data/tdf77964.doc
rename to sw/qa/extras/cjk/data/tdf77964.doc
diff --git a/sw/qa/extras/odfimport/odfimport.cxx 
b/sw/qa/extras/odfimport/odfimport.cxx
index c3fe3e0242bc..05992ca09f55 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -621,13 +621,6 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf128737)
     CPPUNIT_ASSERT_EQUAL(8, getShapes());
 }
 
-CPPUNIT_TEST_FIXTURE(Test, tdf167455)
-{
-    // crashes at import time on macOS
-    createSwDoc("tdf167455.odt");
-    CPPUNIT_ASSERT_EQUAL(1, getPages());
-}
-
 CPPUNIT_TEST_FIXTURE(Test, testCalcFootnoteContent)
 {
     createSwDoc("ooo32780-1.odt");
@@ -966,18 +959,6 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf75221)
     CPPUNIT_ASSERT(top.toInt32() > 0);
 }
 
-CPPUNIT_TEST_FIXTURE(Test, testTdf101729)
-{
-    createSwDoc("tdf101729.odt");
-    xmlDocUniquePtr pXmlDoc = parseLayoutDump();
-    sal_Int32 l = getXPath(pXmlDoc, 
"/root/page/body/tab/row/cell[1]/infos/bounds", "left").toInt32();
-    sal_Int32 w = getXPath(pXmlDoc, 
"/root/page/body/tab/row/cell[1]/infos/bounds", "width").toInt32();
-    sal_Int32 x = getXPath(pXmlDoc, 
"/root/page/body/tab/row/cell[1]/txt/infos/bounds", "left").toInt32();
-    // Make sure the text does not go outside and verify it is centered roughly
-    CPPUNIT_ASSERT( l + w / 4 < x  );
-    CPPUNIT_ASSERT( x < l + 3 * w / 4);
-}
-
 CPPUNIT_TEST_FIXTURE(Test, testTdf107392)
 {
     createSwDoc("tdf107392.odt");
@@ -1091,12 +1072,6 @@ CPPUNIT_TEST_FIXTURE(Test, testBlankBeforeFirstPage)
     );
 }
 
-CPPUNIT_TEST_FIXTURE(Test, testTdf115079)
-{
-    createSwDoc("tdf115079.odt");
-    // This document caused segfault when layouting
-}
-
 CPPUNIT_TEST_FIXTURE(Test, testTdf108482)
 {
     createSwDoc("tdf108482.odt");
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
index 1c0f9240d9da..681e32251952 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport21.cxx
@@ -1342,32 +1342,6 @@ DECLARE_OOXMLEXPORT_TEST(testTdf164176, "tdf164176.docx")
     CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), sPresentation.indexOf("_x000a_"));
 }
 
-CPPUNIT_TEST_FIXTURE(Test, testMsWordUlTrailSpace)
-{
-    createSwDoc("UnderlineTrailingSpace.docx");
-    {
-        uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, 
uno::UNO_QUERY_THROW);
-        uno::Reference<beans::XPropertySet> xSettings(
-            xFactory->createInstance(u"com.sun.star.document.Settings"_ustr), 
uno::UNO_QUERY_THROW);
-        CPPUNIT_ASSERT_EQUAL(uno::Any(true),
-                             
xSettings->getPropertyValue(u"MsWordUlTrailSpace"_ustr));
-    }
-
-    // Test also after save-and-reload:
-    saveAndReload(TestFilter::DOCX);
-    {
-        uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, 
uno::UNO_QUERY_THROW);
-        uno::Reference<beans::XPropertySet> xSettings(
-            xFactory->createInstance(u"com.sun.star.document.Settings"_ustr), 
uno::UNO_QUERY_THROW);
-        CPPUNIT_ASSERT_EQUAL(uno::Any(true),
-                             
xSettings->getPropertyValue(u"MsWordUlTrailSpace"_ustr));
-    }
-
-    // Check that the compat setting is exported in OOXML
-    xmlDocUniquePtr pXmlSettings = parseExport("word/settings.xml");
-    assertXPath(pXmlSettings, "/w:settings/w:compat/w:ulTrailSpace");
-}
-
 CPPUNIT_TEST_FIXTURE(Test, testTdf165059_moveFromTo)
 {
     createSwDoc("tdf165059_broken.docx");
diff --git a/sw/qa/extras/ww8export/ww8export.cxx 
b/sw/qa/extras/ww8export/ww8export.cxx
index 0eea4f3ec8da..691f64f8eeac 100644
--- a/sw/qa/extras/ww8export/ww8export.cxx
+++ b/sw/qa/extras/ww8export/ww8export.cxx
@@ -1273,37 +1273,6 @@ DECLARE_WW8EXPORT_TEST(testBnc636128, "bnc636128.doc")
     CPPUNIT_ASSERT_EQUAL(sal_uInt16(5), 
xParameters->getByName(u"MaxLength"_ustr).get<sal_uInt16>());
 }
 
-
-DECLARE_WW8EXPORT_TEST(testWw8Cjklist30, "cjklist30.doc")
-{
-    sal_Int16   numFormat = getNumberingTypeOfParagraph(1);
-    CPPUNIT_ASSERT_EQUAL(style::NumberingType::TIAN_GAN_ZH, numFormat);
-}
-
-DECLARE_WW8EXPORT_TEST(testWw8Cjklist31, "cjklist31.doc")
-{
-    sal_Int16   numFormat = getNumberingTypeOfParagraph(1);
-    CPPUNIT_ASSERT_EQUAL(style::NumberingType::DI_ZI_ZH, numFormat);
-}
-
-DECLARE_WW8EXPORT_TEST(testWw8Cjklist34, "cjklist34.doc")
-{
-    sal_Int16   numFormat = getNumberingTypeOfParagraph(1);
-    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_UPPER_ZH_TW, numFormat);
-}
-
-DECLARE_WW8EXPORT_TEST(testWw8Cjklist35, "cjklist35.doc")
-{
-    sal_Int16   numFormat = getNumberingTypeOfParagraph(1);
-    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_LOWER_ZH, numFormat);
-}
-
-DECLARE_WW8EXPORT_TEST(testTdf118564, "tdf118564.doc")
-{
-    sal_Int16   numFormat = getNumberingTypeOfParagraph(3);
-    CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_LOWER_ZH, numFormat);
-}
-
 DECLARE_WW8EXPORT_TEST(testTdf92281, "tdf92281.doc")
 {
         uno::Reference<beans::XPropertySet> xRun(getRun(getParagraph(1),1), 
uno::UNO_QUERY);
diff --git a/sw/qa/extras/ww8export/ww8export4.cxx 
b/sw/qa/extras/ww8export/ww8export4.cxx
index 5db68c88b8a2..44e1d5301113 100644
--- a/sw/qa/extras/ww8export/ww8export4.cxx
+++ b/sw/qa/extras/ww8export/ww8export4.cxx
@@ -51,14 +51,6 @@ public:
     }
 };
 
-CPPUNIT_TEST_FIXTURE(Test, testTdf77964)
-{
-    createSwDoc("tdf77964.doc");
-    saveAndReload(TestFilter::DOC);
-    // both images were loading as AT_PARA instead of AS_CHAR. Image2 visually 
had text wrapping.
-    CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AS_CHARACTER, 
getProperty<text::TextContentAnchorType>(getShapeByName(u"Image2"), 
u"AnchorType"_ustr));
-}
-
 DECLARE_WW8EXPORT_TEST(testTdf72511_editengLRSpace, 
"tdf72511_editengLRSpace.doc")
 {
     // given a default paragraph style with a left indent of 2 inches,
commit aa440c55640219f2cd9a94fb0d26b25405fa029e
Author:     Caolán McNamara <[email protected]>
AuthorDate: Mon Dec 15 12:44:56 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:44:45 2026 +0100

    This instance of the readonly info dialog can be async
    
    Change-Id: I5a9a7b4aaec504c6adc57e5fe6b8324af2350500
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195667
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/source/core/edit/eddel.cxx b/sw/source/core/edit/eddel.cxx
index bcf151df3b37..85ef7cf91fc0 100644
--- a/sw/source/core/edit/eddel.cxx
+++ b/sw/source/core/edit/eddel.cxx
@@ -180,7 +180,7 @@ bool SwEditShell::Delete(bool const isArtificialSelection, 
bool goLeft)
         bRet = RemoveParagraphMetadataFieldAtCursor();
         if (!bRet)
         {
-            InfoReadOnlyDialog(false);
+            InfoReadOnlyDialog(true);
         }
     }
 
commit 8e268ddb232adcc35748e976b5f6c74f2842a538
Author:     Caolán McNamara <[email protected]>
AuthorDate: Mon Dec 15 11:39:33 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:44:33 2026 +0100

    make SwNewUserIdxDlg async
    
    Change-Id: I1198eaed112f0b0083cf7e5347e1a1128a015c91
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195663
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/source/ui/index/swuiidxmrk.cxx 
b/sw/source/ui/index/swuiidxmrk.cxx
index ca864b5fbdd4..a2cc5fd280d0 100644
--- a/sw/source/ui/index/swuiidxmrk.cxx
+++ b/sw/source/ui/index/swuiidxmrk.cxx
@@ -679,13 +679,14 @@ IMPL_LINK( SwNewUserIdxDlg, ModifyHdl, weld::Entry&, 
rEdit, void)
 
 IMPL_LINK_NOARG(SwIndexMarkPane, NewUserIdxHdl, weld::Button&, void)
 {
-    SwNewUserIdxDlg aDlg(this, m_xDialog.get());
-    if (aDlg.run() == RET_OK)
-    {
-        OUString sNewName(aDlg.GetName());
-        m_xTypeDCB->append_text(sNewName);
-        m_xTypeDCB->set_active_text(sNewName);
-    }
+    auto xDlg = std::make_shared<SwNewUserIdxDlg>(this, m_xDialog.get());
+    weld::GenericDialogController::runAsync(xDlg, [xDlg, this](sal_Int32 
nResult){
+        if (nResult == RET_OK) {
+            OUString sNewName(xDlg->GetName());
+            m_xTypeDCB->append_text(sNewName);
+            m_xTypeDCB->set_active_text(sNewName);
+        }
+    });
 }
 
 IMPL_LINK( SwIndexMarkPane, SearchTypeHdl, weld::Toggleable&, rBox, void)
commit 04a06963f7f9435743ea1f70cba478af2beb7006
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 14:59:21 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:44:21 2026 +0100

    change David CLM to David Libre
    
    Change-Id: I5db9be375ef4b27924ee74f44376bea91f48821a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195576
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf124116-hebrew-track-untrack.odt 
b/vcl/qa/cppunit/pdfexport/data/tdf124116-hebrew-track-untrack.odt
index e3f3becee3a8..a9761ecded70 100644
Binary files a/vcl/qa/cppunit/pdfexport/data/tdf124116-hebrew-track-untrack.odt 
and b/vcl/qa/cppunit/pdfexport/data/tdf124116-hebrew-track-untrack.odt differ
commit 5322d91c2a83d583d67b84697a711e8f190d1c4f
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 11:41:48 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:44:10 2026 +0100

    change David CLM to David Libre
    
    Change-Id: Ia880b265c8e1e9816f8476bac77f859f3eab964b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195559
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/qa/extras/ww8export/data/tdf120629.odt 
b/sw/qa/extras/ww8export/data/tdf120629.odt
index 36d7feaa2722..404c20c64b53 100644
Binary files a/sw/qa/extras/ww8export/data/tdf120629.odt and 
b/sw/qa/extras/ww8export/data/tdf120629.odt differ
commit 77d03e7bf04783841d3ba61f82342cb989901e97
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Dec 11 09:47:14 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:43:57 2026 +0100

    don't abort in test mode for missing 0x3001
    
    similar to how we allow missing 0xb7
    
    Change-Id: I5206efa4b6d70ec432b8626eff3dd86d933e769e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195596
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx 
b/vcl/unx/generic/fontmanager/fontconfig.cxx
index bf2a0da22370..b33675cd7b2a 100644
--- a/vcl/unx/generic/fontmanager/fontconfig.cxx
+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
@@ -1067,12 +1067,17 @@ void 
PrintFontManager::Substitute(vcl::font::FontSelectPattern &rPattern, OUStri
     OString aLangAttrib = mapToFontConfigLangTag(aLangTag);
 
     bool bMissingJustBullet = false;
+    bool bMissingIdeographicComma = false;
 
     // Add required Unicode characters, if any
     if ( !rMissingCodes.isEmpty() )
     {
         FcCharSet *codePoints = FcCharSetCreate();
-        bMissingJustBullet = rMissingCodes.getLength() == 1 && 
rMissingCodes[0] == 0xb7;
+        if (rMissingCodes.getLength() == 1)
+        {
+            bMissingJustBullet = rMissingCodes[0] == 0xb7;
+            bMissingIdeographicComma = rMissingCodes[0] == 0x3001;
+        }
         for( sal_Int32 nStrIndex = 0; nStrIndex < rMissingCodes.getLength(); )
         {
             // also handle unicode surrogates
@@ -1262,11 +1267,13 @@ void 
PrintFontManager::Substitute(vcl::font::FontSelectPattern &rPattern, OUStri
     }();
     if (bAbortOnFontSubstitute && rPattern.maTargetName != 
rPattern.maSearchName)
     {
-        if (bMissingJustBullet)
+        if (bMissingJustBullet || bMissingIdeographicComma)
         {
-            // Some fonts exist in "more_fonts", but have no U+00B7 MIDDLE DOT
-            // so will always glyph fallback on measuring mnBulletOffset in
-            // FontMetricData::ImplInitTextLineSize
+            // Some fonts exist in "more_fonts", but:
+            // a) have no U+00B7 MIDDLE DOT so will always glyph fallback on
+            // measuring mnBulletOffset in FontMetricData::ImplInitTextLineSize
+            // b) have no U+3001 IDEOGRAPHIC COMMA so will always glyph 
fallback on
+            // measuring its width in FontMetricData::ImplInitFlags for CJK 
text
             return;
         }
         if (rPattern.maTargetName == "Linux Libertine G" && 
rPattern.maSearchName == "Linux Libertine O")
commit 0bfcc57961aa3208a124adda490a2ea05efead76
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 10:58:27 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:43:40 2026 +0100

    replace CJK text to get consistent fonts used
    
    Change-Id: I49c91576d031312542368f16a55f4c08630d2f89
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195595
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/qa/extras/ww8export/data/i120158.doc 
b/sw/qa/extras/ww8export/data/i120158.doc
index eef3154d81f2..fe9e76989afd 100644
Binary files a/sw/qa/extras/ww8export/data/i120158.doc and 
b/sw/qa/extras/ww8export/data/i120158.doc differ
commit 0f4303768507ca891bd336bc137c8673350a2cbb
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 15:12:35 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:43:27 2026 +0100

    this test needs lpsolve
    
    Change-Id: Ic2abc9dc6724d05b41428091c52027ca66c4e843
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195570
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins

diff --git a/sc/common_unoapi_tests.mk b/sc/common_unoapi_tests.mk
index 025639a4de20..7a8fc75a1673 100644
--- a/sc/common_unoapi_tests.mk
+++ b/sc/common_unoapi_tests.mk
@@ -18,6 +18,10 @@ $(eval $(call 
gb_CppunitTest_use_external,sc_$(1),boost_headers))
 
 $(eval $(call gb_Library_use_common_precompiled_header,sc_$(1)))
 
+$(eval $(call gb_CppunitTest_add_defs,sc_$(1),\
+       $(if $(ENABLE_LPSOLVE), -DENABLE_LPSOLVE) \
+))
+
 $(eval $(call gb_CppunitTest_add_exception_objects,sc_$(1), \
     sc/qa/extras/sc$(1) \
 ))
diff --git a/sc/qa/extras/scsolverobj.cxx b/sc/qa/extras/scsolverobj.cxx
index 2572fcc070c8..b7735a7e8711 100644
--- a/sc/qa/extras/scsolverobj.cxx
+++ b/sc/qa/extras/scsolverobj.cxx
@@ -74,6 +74,7 @@ void ScSolverSettingsObj::testCellRangeAddress(const 
uno::Any& rExpected, const
 // Creates a model using the XSolverSettings API checks if it is accessible 
via the API
 void ScSolverSettingsObj::testXSolverSettings()
 {
+#ifdef ENABLE_LPSOLVE
     uno::Reference<sheet::XSpreadsheetDocument> xDoc(mxComponent, 
uno::UNO_QUERY_THROW);
     uno::Reference<container::XIndexAccess> xIndex(xDoc->getSheets(), 
uno::UNO_QUERY_THROW);
     uno::Reference<sheet::XSpreadsheet> xSheet(xIndex->getByIndex(0), 
uno::UNO_QUERY_THROW);
@@ -203,6 +204,7 @@ void ScSolverSettingsObj::testXSolverSettings()
     CPPUNIT_ASSERT_EQUAL(uno::Any(true), aEngProps2[4].Value);
     CPPUNIT_ASSERT_EQUAL(u"Timeout"_ustr, aEngProps2[5].Name);
     CPPUNIT_ASSERT_EQUAL(uno::Any(static_cast<sal_Int32>(10)), 
aEngProps2[5].Value);
+#endif
 }
 
 void ScSolverSettingsObj::setUp()
commit 593f93d95ec2a5cd2c4b21a4e520a33d18cefb50
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Dec 13 20:06:29 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:43:09 2026 +0100

    build soffice launcher regardless of USING_X11
    
    Change-Id: Id705465b3ce55322b157cc5590023671a191d527
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195610
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins

diff --git a/Repository.mk b/Repository.mk
index e9d249b43f4c..8c6d4b2b4089 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -1133,9 +1133,7 @@ $(eval $(call 
gb_Helper_register_packages_for_install,brand,\
        $(if $(CUSTOM_BRAND_DIR),desktop_branding_custom) \
        $(if $(filter DESKTOP,$(BUILD_TYPE)),desktop_scripts_install) \
        $(if $(and $(filter-out EMSCRIPTEN HAIKU MACOSX WNT,$(OS)),$(filter 
DESKTOP,$(BUILD_TYPE))),\
-               $(if $(DISABLE_GUI),, \
-                       desktop_soffice_sh \
-               ) \
+               desktop_soffice_sh \
        ) \
        readlicense_oo_files \
        readlicense_oo_license \
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index 862662e2acf2..309559c8ef2e 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -49,7 +49,13 @@ $(eval $(call gb_Module_add_targets,desktop,\
     $(if $(filter-out WNT,$(OS)),CustomTarget_soffice) \
 ))
 
-ifeq ($(USING_X11),TRUE)
+ifneq (,$(filter-out EMSCRIPTEN HAIKU MACOSX WNT,$(OS)))
+$(eval $(call gb_Module_add_targets,desktop,\
+    Package_soffice_sh \
+))
+endif
+
+ifeq ($(USING_X11), TRUE)
 $(eval $(call gb_Module_add_targets,desktop,\
     Package_sbase_sh \
     Package_scalc_sh \
@@ -57,7 +63,6 @@ $(eval $(call gb_Module_add_targets,desktop,\
     Package_simpress_sh \
     Package_smath_sh \
     Package_swriter_sh \
-    Package_soffice_sh \
 ))
 endif
 endif # DESKTOP
commit f23592b2126cebcfa6b88a4ddd798cce80e5ff8d
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Dec 13 15:52:30 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:42:53 2026 +0100

    This uitest depends on enabled poppler support
    
    Change-Id: Id094a869429828f9684a04506e99b69ef6316eb6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195605
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/qa/uitest/writer_tests4/exportToPDF.py 
b/sw/qa/uitest/writer_tests4/exportToPDF.py
index 5dbc136faa28..5d8ed0d91856 100644
--- a/sw/qa/uitest/writer_tests4/exportToPDF.py
+++ b/sw/qa/uitest/writer_tests4/exportToPDF.py
@@ -13,7 +13,7 @@ from uitest.uihelper.common import type_text
 from libreoffice.uno.propertyvalue import mkPropertyValues
 from org.libreoffice.unotest import systemPathToFileUrl
 from tempfile import TemporaryDirectory
-import os.path
+import os
 
 class exportToPDF(UITestCase):
 
@@ -74,6 +74,7 @@ class exportToPDF(UITestCase):
 
             with self.ui_test.load_file(systemPathToFileUrl(xFilePath)) as 
document:
 
-                self.assertEqual("Hello World", 
document.DrawPages[0][0].String)
+                if os.getenv('ENABLE_POPPLER') == 'TRUE':
+                    self.assertEqual("Hello World", 
document.DrawPages[0][0].String)
 
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
commit 377433c5ba00dfa8ceda6d1b1e8b7f66746cfe7a
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Dec 13 10:42:40 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:42:39 2026 +0100

    This uitest depends on enabled poppler support
    
    Change-Id: Ia6df2c450d0f9d66e801f09d72b64bf5bf0a6499
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195594
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sd/qa/uitest/impress_tests/exportToPDF.py 
b/sd/qa/uitest/impress_tests/exportToPDF.py
index 0caf74a6f2b1..72d287079037 100644
--- a/sd/qa/uitest/impress_tests/exportToPDF.py
+++ b/sd/qa/uitest/impress_tests/exportToPDF.py
@@ -79,9 +79,10 @@ class exportToPDF(UITestCase):
 
             with self.ui_test.load_file(systemPathToFileUrl(xFilePath)) as 
document:
 
-                self.assertEqual("", document.DrawPages[0][0].String)
-                self.assertEqual(" ", document.DrawPages[0][1].String)
-                self.assertEqual(" ", document.DrawPages[0][2].String)
-                self.assertEqual("Hello World", 
document.DrawPages[0][3].String)
+                if os.getenv('ENABLE_POPPLER') == 'TRUE':
+                    self.assertEqual("", document.DrawPages[0][0].String)
+                    self.assertEqual(" ", document.DrawPages[0][1].String)
+                    self.assertEqual(" ", document.DrawPages[0][2].String)
+                    self.assertEqual("Hello World", 
document.DrawPages[0][3].String)
 
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
commit b788c5a2e629fc1d2b0913413fbb25bca9a43c42
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 19:43:45 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:42:18 2026 +0100

    This uitest depends on enabled poppler support
    
    Change-Id: Ia73ad1d98d4286425d1a159115bfceab130c5b98
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195586
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Caolán McNamara <[email protected]>

diff --git a/sc/qa/uitest/calc_tests4/exportToPDF.py 
b/sc/qa/uitest/calc_tests4/exportToPDF.py
index f3a14b48be08..701402612e3b 100644
--- a/sc/qa/uitest/calc_tests4/exportToPDF.py
+++ b/sc/qa/uitest/calc_tests4/exportToPDF.py
@@ -7,7 +7,7 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
-import os.path
+import os
 from tempfile import TemporaryDirectory
 
 from uitest.framework import UITestCase
@@ -76,8 +76,10 @@ class exportToPDF(UITestCase):
 
             with self.ui_test.load_file(systemPathToFileUrl(xFilePath)) as 
document:
 
-                self.assertEqual("Sheet1", document.DrawPages[0][0].String)
-                self.assertEqual("Page 1", document.DrawPages[0][1].String)
-                self.assertEqual("Hello World", 
document.DrawPages[0][2].String)
+               # This test depends on the poppler pdf import
+               if os.getenv('ENABLE_POPPLER') == 'TRUE':
+                    self.assertEqual("Sheet1", document.DrawPages[0][0].String)
+                    self.assertEqual("Page 1", document.DrawPages[0][1].String)
+                    self.assertEqual("Hello World", 
document.DrawPages[0][2].String)
 
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
commit bb5c31c9f1cf005cb68ab86a84e1673709360cff
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Dec 11 12:26:02 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:42:12 2026 +0100

    add parsePDFExportNoAssert for the case of no cups support
    
    Change-Id: Iba0288c4ac6b3dfaae0253224a19369974346485
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195453
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 7766c3aa3e76..98c2f9616c26 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -44,6 +44,17 @@ public:
 
     void saveAsPDF(std::u16string_view rFile);
     void load(std::u16string_view rFile, vcl::filter::PDFDocument& rDocument);
+
+    std::unique_ptr<vcl::pdf::PDFiumDocument> parsePDFExportNoAssert()
+    {
+        SvFileStream aFile(maTempFile.GetURL(), StreamMode::READ);
+        maMemory.WriteStream(aFile);
+
+        std::shared_ptr<vcl::pdf::PDFium> pPDFium = 
vcl::pdf::PDFiumLibrary::get();
+        if (!pPDFium)
+            return nullptr;
+        return pPDFium->openDocument(maMemory.GetData(), maMemory.GetSize(), 
OString());
+    }
 };
 
 void PdfExportTest::saveAsPDF(std::u16string_view rFile)
@@ -360,7 +371,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf107868)
     xPrintable->print(aOptions);
 
     // Parse the export result with pdfium.
-    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport();
+    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = 
parsePDFExportNoAssert();
     if (!pPdfDocument)
         // Printing to PDF failed in a non-interesting way, e.g. CUPS is not
         // running, there is no printer defined, etc.
@@ -635,7 +646,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testSofthyphenPos)
     xPrintable->print(aOptions);
 
     // Parse the export result with pdfium.
-    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport();
+    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = 
parsePDFExportNoAssert();
     if (!pPdfDocument)
         // Printing to PDF failed in a non-interesting way, e.g. CUPS is not
         // running, there is no printer defined, etc.
commit ccb3bf47f380b1465c0469082cc09e118cddb1c1
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 14:56:40 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:42:01 2026 +0100

    use 🐱 and DejaVu Sans
    
    known to already work in:
    https://gerrit.libreoffice.org/c/core/+/193497
    
    where Noto Sans in Debian might be problematic
    
    Change-Id: I506fc673951e6ff515da9fb2120b748e2c00bd91
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195577
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/sw/qa/extras/unowriter/unowriter.cxx 
b/sw/qa/extras/unowriter/unowriter.cxx
index f36996063808..b475ad4c4349 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -1369,7 +1369,7 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
 {
     createSwDoc();
     uno::Reference<beans::XPropertySet> xParaProps(getParagraph(1), 
uno::UNO_QUERY);
-    xParaProps->setPropertyValue(u"CharFontName"_ustr, uno::Any(u"Noto 
Sans"_ustr));
+    xParaProps->setPropertyValue(u"CharFontName"_ustr, uno::Any(u"DejaVu 
Sans"_ustr));
     auto xTextDocument(mxComponent.queryThrow<css::text::XTextDocument>());
     auto xText(xTextDocument->getText());
     xText->setString(u"123"_ustr);
@@ -1377,11 +1377,11 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
     auto xCursor = xText->createTextCursorByRange(xText->getEnd());
     xCursor->goLeft(1, true);
     CPPUNIT_ASSERT_EQUAL(u"3"_ustr, xCursor->getString());
-    // Insert an SMP character U+1df1e (so it's two UTF-16 code units, 0xd837 
0xdf1e):
-    xCursor->setString(u"𝼞"_ustr);
+    // Insert an SMP character U+1f431 (so it's two UTF-16 code units, 0xd83d 
0xdc31):
+    xCursor->setString(u"🐱"_ustr);
     // Without the fix, the replacement would expand the cursor one too many 
characters to the left,
-    // and the cursor text would become "2𝼞", failing the next test:
-    CPPUNIT_ASSERT_EQUAL(u"𝼞"_ustr, xCursor->getString());
+    // and the cursor text would become "2🐱", failing the next test:
+    CPPUNIT_ASSERT_EQUAL(u"🐱"_ustr, xCursor->getString());
     xCursor->setString(u"test"_ustr);
     CPPUNIT_ASSERT_EQUAL(u"test"_ustr, xCursor->getString());
     // This test would fail, too; the text would be "1test":
commit f37fc8fb0e460af73ff33ab7aab58482e0427e6e
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 09:54:21 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:41:34 2026 +0100

    fix test for ENABLE_CAIRO_RGBA
    
    Change-Id: I91f472d0a65527a0cb64c350de91c1f4f625d56a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195538
    Tested-by: Caolán McNamara <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx 
b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index caf90b070016..c0a68aeea3de 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -60,6 +60,8 @@
 #include <vcl/filter/PngImageWriter.hxx>
 #include <sfx2/lokhelper.hxx>
 
+#include <config_cairo_rgba.h>
+
 #include <chrono>
 #include <cstdlib>
 #include <string_view>
@@ -3130,7 +3132,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering)
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, aBitmapEx.GetPixelColor(nLeft, 
nBottom));
 
         // bottom-right corner
-        CPPUNIT_ASSERT_EQUAL(Color(0xff, 0xd0, 0x40), 
aBitmapEx.GetPixelColor(nRight, nBottom));
+        ::Color nColor = aBitmapEx.GetPixelColor(nRight, nBottom);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0xff, 0xd0, 0x40), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0x40, 0xd0, 0xff), nColor);
+#endif
 
         boost::property_tree::ptree aTree;
         readJSON(aTree, aJson);
@@ -3155,7 +3162,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering)
         Bitmap aBitmapEx = vcl::bitmap::CreateFromData(pBuffer.data(), 
nViewWidth, nViewHeight, nViewWidth * 4, /*nBitsPerPixel*/32, true, true);
 
         // top-left corner
-        CPPUNIT_ASSERT_EQUAL(Color(0x00, 0x50, 0x90), 
aBitmapEx.GetPixelColor(nLeft, nTop));
+        ::Color nColor = aBitmapEx.GetPixelColor(nLeft, nTop);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0x00, 0x50, 0x90), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0x90, 0x50, 0x00), nColor);
+#endif
 
         // bottom-left corner
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, aBitmapEx.GetPixelColor(nLeft, 
nBottom));
@@ -3244,7 +3256,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering_WithFie
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, aBitmapEx.GetPixelColor(nLeft, 
nTop));
 
         // bottom-left corner
-        CPPUNIT_ASSERT_EQUAL(Color(0x90, 0x80, 0xff), 
aBitmapEx.GetPixelColor(nLeft, nBottom));
+        ::Color nColor = aBitmapEx.GetPixelColor(nLeft, nBottom);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0x90, 0x80, 0xff), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0xff, 0x80, 0x90), nColor);
+#endif
 
         // bottom-right corner
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, 
aBitmapEx.GetPixelColor(nRight, nBottom));
@@ -3279,7 +3296,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering_WithFie
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, 
aBitmapEx.GetPixelColor(nRight, nBottom));
 
         // bottom-center
-        CPPUNIT_ASSERT_EQUAL(Color(0x20, 0xaa, 0x00), 
aBitmapEx.GetPixelColor(nCenterX, nBottom));
+        ::Color nColor = aBitmapEx.GetPixelColor(nCenterX, nBottom);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0x20, 0xaa, 0x00), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0x00, 0xaa, 0x20), nColor);
+#endif
 
         boost::property_tree::ptree aTree;
         readJSON(aTree, aJson);
@@ -3308,7 +3330,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering_WithFie
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, aBitmapEx.GetPixelColor(nLeft, 
nBottom));
 
         // bottom-right corner
-        CPPUNIT_ASSERT_EQUAL(Color(0xff, 0xd0, 0x40), 
aBitmapEx.GetPixelColor(nRight, nBottom));
+        ::Color nColor = aBitmapEx.GetPixelColor(nRight, nBottom);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0xff, 0xd0, 0x40), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0x40, 0xd0, 0xff), nColor);
+#endif
 
         boost::property_tree::ptree aTree;
         readJSON(aTree, aJson);
@@ -3368,7 +3395,12 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSlideshowLayeredRendering_WithFie
         Bitmap aBitmapEx = vcl::bitmap::CreateFromData(pBuffer.data(), 
nViewWidth, nViewHeight, nViewWidth * 4, /*nBitsPerPixel*/32, true, true);
 
         // top-left corner
-        CPPUNIT_ASSERT_EQUAL(Color(0x00, 0x50, 0x90), 
aBitmapEx.GetPixelColor(nLeft, nTop));
+        ::Color nColor = aBitmapEx.GetPixelColor(nLeft, nTop);
+#if !ENABLE_CAIRO_RGBA
+        CPPUNIT_ASSERT_EQUAL(Color(0x00, 0x50, 0x90), nColor);
+#else
+        CPPUNIT_ASSERT_EQUAL(Color(0x90, 0x50, 0x00), nColor);
+#endif
 
         // bottom-left corner
         CPPUNIT_ASSERT_EQUAL(aTransparentColor, aBitmapEx.GetPixelColor(nLeft, 
nBottom));
commit b7aeb06c8ecd5c9ae803aae65834a3fac8e51a41
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Dec 11 09:05:00 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:41:26 2026 +0100

    disable testDrawMask24bpp for --enable-cairo-rgba
    
    Change-Id: I84755909a705a23786d1f55948ab1c90c3543395
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195433
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/vcl/qa/cppunit/BackendTest.cxx b/vcl/qa/cppunit/BackendTest.cxx
index 690d86cdbab7..60fc689b5f14 100644
--- a/vcl/qa/cppunit/BackendTest.cxx
+++ b/vcl/qa/cppunit/BackendTest.cxx
@@ -500,6 +500,7 @@ public:
 
     void testDrawMask24bpp()
     {
+#if !ENABLE_CAIRO_RGBA
         if (getDefaultDeviceBitCount() < 24)
             return;
         vcl::test::OutputDeviceTestBitmap aOutDevTest;
@@ -508,6 +509,7 @@ public:
         exportImage(u"08-05_mask_test_24bpp.png"_ustr, aBitmap);
         if (SHOULD_ASSERT)
             CPPUNIT_ASSERT(eResult != vcl::test::TestResult::Failed);
+#endif
     }
 
     void testDrawBlend24bpp()
commit cb76e218592f373acf38dda44832b200f0243764
Author:     Caolán McNamara <[email protected]>
AuthorDate: Fri Dec 12 10:28:37 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:41:16 2026 +0100

    use an SMP char that exists in some bundled font: Noto Sans has U+1DF1E
    
    Change-Id: Ic2b249fa244cf5d1c0b973b2cb9c7008c9f54918
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195541
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/qa/extras/unowriter/unowriter.cxx 
b/sw/qa/extras/unowriter/unowriter.cxx
index 9161980a6cbe..f36996063808 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -1368,6 +1368,8 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf141525)
 CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
 {
     createSwDoc();
+    uno::Reference<beans::XPropertySet> xParaProps(getParagraph(1), 
uno::UNO_QUERY);
+    xParaProps->setPropertyValue(u"CharFontName"_ustr, uno::Any(u"Noto 
Sans"_ustr));
     auto xTextDocument(mxComponent.queryThrow<css::text::XTextDocument>());
     auto xText(xTextDocument->getText());
     xText->setString(u"123"_ustr);
@@ -1375,11 +1377,11 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
     auto xCursor = xText->createTextCursorByRange(xText->getEnd());
     xCursor->goLeft(1, true);
     CPPUNIT_ASSERT_EQUAL(u"3"_ustr, xCursor->getString());
-    // Insert an SMP character U+1f702 (so it's two UTF-16 code units, 0xd83d 
0xdf02):
-    xCursor->setString(u"🜂"_ustr);
+    // Insert an SMP character U+1df1e (so it's two UTF-16 code units, 0xd837 
0xdf1e):
+    xCursor->setString(u"𝼞"_ustr);
     // Without the fix, the replacement would expand the cursor one too many 
characters to the left,
-    // and the cursor text would become "2🜂", failing the next test:
-    CPPUNIT_ASSERT_EQUAL(u"🜂"_ustr, xCursor->getString());
+    // and the cursor text would become "2𝼞", failing the next test:
+    CPPUNIT_ASSERT_EQUAL(u"𝼞"_ustr, xCursor->getString());
     xCursor->setString(u"test"_ustr);
     CPPUNIT_ASSERT_EQUAL(u"test"_ustr, xCursor->getString());
     // This test would fail, too; the text would be "1test":
commit ddb5e7660e1756c11daccbd0d1a99c171c8d97f6
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Dec 11 11:35:05 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:41:00 2026 +0100

    replace Japanese text to get consistent fonts used
    
    Change-Id: I7c9504aa5adc741f773395b9d5bf49286de98885
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195450
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sd/qa/unit/data/pptx/smartart-tdf134221.pptx 
b/sd/qa/unit/data/pptx/smartart-tdf134221.pptx
index 9dba931cd3e3..6d01e02012f4 100644
Binary files a/sd/qa/unit/data/pptx/smartart-tdf134221.pptx and 
b/sd/qa/unit/data/pptx/smartart-tdf134221.pptx differ
commit 57a75efc8d20fef38565654397b3b1cf7066698a
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Dec 11 15:02:13 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:39:50 2026 +0100

    sw/uiconfig/swriter/ui/charurlpage.ui isn't used anymore
    
    since:
    
    commit 63315d601296f7c188e920f73b12260d018807d0
    Date:   Tue Apr 23 17:20:47 2024 +0200
    
        Resolves tdf#132253 - Remove hyperlink tab from character dialog
    
    Change-Id: I35d5e1af6dc7cdb1ea8661ea5661bf183becc0ef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195474
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/static/CustomTarget_emscripten_fs_image.mk 
b/static/CustomTarget_emscripten_fs_image.mk
index f1f5323eec4e..fe513b81a6bb 100644
--- a/static/CustomTarget_emscripten_fs_image.mk
+++ b/static/CustomTarget_emscripten_fs_image.mk
@@ -593,7 +593,6 @@ gb_emscripten_fs_image_files += \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/cardmediumpage.ui
 \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/ccdialog.ui
 \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/characterproperties.ui
 \
-    
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/charurlpage.ui
 \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/checkbox.ui
 \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/columndialog.ui
 \
     
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/swriter/ui/columnpage.ui
 \
diff --git a/sw/UIConfig_swriter.mk b/sw/UIConfig_swriter.mk
index 8c76e3d9dda3..20bb54773c89 100644
--- a/sw/UIConfig_swriter.mk
+++ b/sw/UIConfig_swriter.mk
@@ -126,7 +126,6 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\
        sw/uiconfig/swriter/ui/cardmediumpage \
        sw/uiconfig/swriter/ui/ccdialog \
        sw/uiconfig/swriter/ui/characterproperties \
-       sw/uiconfig/swriter/ui/charurlpage \
        sw/uiconfig/swriter/ui/checkbox \
        sw/uiconfig/swriter/ui/columndialog \
        sw/uiconfig/swriter/ui/columnpage \
diff --git a/sw/qa/unit/data/sw-dialogs-test.txt 
b/sw/qa/unit/data/sw-dialogs-test.txt
index 2631e279a211..50736fd327d5 100644
--- a/sw/qa/unit/data/sw-dialogs-test.txt
+++ b/sw/qa/unit/data/sw-dialogs-test.txt
@@ -68,7 +68,6 @@ modules/swriter/ui/captionoptions.ui
 modules/swriter/ui/cardmediumpage.ui
 modules/swriter/ui/ccdialog.ui
 modules/swriter/ui/characterproperties.ui
-modules/swriter/ui/charurlpage.ui
 modules/swriter/ui/columndialog.ui
 modules/swriter/ui/columnpage.ui
 modules/swriter/ui/columnwidth.ui
diff --git a/sw/uiconfig/swriter/ui/charurlpage.ui 
b/sw/uiconfig/swriter/ui/charurlpage.ui
deleted file mode 100644
index 2cc5e71a3d96..000000000000
--- a/sw/uiconfig/swriter/ui/charurlpage.ui
+++ /dev/null
@@ -1,349 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
-<interface domain="sw">
-  <requires lib="gtk+" version="3.24"/>
-  <object class="GtkBox" id="CharURLPage">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="border_width">6</property>
-    <property name="orientation">vertical</property>
-    <property name="spacing">12</property>
-    <child>
-      <object class="GtkFrame" id="frame10">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label_xalign">0</property>
-        <property name="shadow_type">none</property>
-        <child>
-          <!-- n-columns=1 n-rows=1 -->
-          <object class="GtkGrid" id="grid7">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="row_spacing">6</property>
-            <property name="column_spacing">12</property>
-            <property name="margin-start">12</property>
-            <property name="margin-top">6</property>
-            <child>
-              <object class="GtkLabel" id="label36">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|label36">URL:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">urled</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="label37">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|label37">Name:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">nameed</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="textft">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|textft">Text:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">texted</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="label39">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|label39">Target frame:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">targetfrmlb</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">3</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="eventpb">
-                <property name="label" translatable="yes" 
context="charurlpage|eventpb">Events...</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="valign">center</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="eventpb-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|eventpb">Specify an event 
that triggers when you click the hyperlink.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">4</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="urled">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="activates_default">True</property>
-                <property name="width_chars">32</property>
-                <property name="truncate-multiline">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="urled-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|urled">Enter a URL for the 
file that you want to open when you click the hyperlink.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="nameed">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="activates_default">True</property>
-                <property name="width_chars">32</property>
-                <property name="truncate-multiline">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="nameed-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|nameed">Enter a name for 
the hyperlink.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkEntry" id="texted">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="activates_default">True</property>
-                <property name="width_chars">32</property>
-                <property name="truncate-multiline">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="texted-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|texted">Enter the text 
that you want to display for the hyperlink.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="urlpb">
-                <property name="label" translatable="yes" 
context="charurlpage|urlpb">Browse...</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="valign">center</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="urlpb-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|urlpb">Locate the file 
that you want to link to, and then click Open.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">2</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBoxText" id="targetfrmlb">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="has_entry">True</property>
-                <child internal-child="entry">
-                  <object class="GtkEntry" id="comboboxtext-entry">
-                    <property name="can_focus">True</property>
-                    <property name="truncate-multiline">True</property>
-                    <property name="activates_default">True</property>
-                  </object>
-                </child>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="targetfrmlb-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|targetfrmlb">Enter the 
name of the frame that you want the linked file to open in, or select a 
predefined frame from the list.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">3</property>
-              </packing>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-            <child>
-              <placeholder/>
-            </child>
-          </object>
-        </child>
-        <child type="label">
-          <object class="GtkLabel" id="label32">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="label" translatable="yes" 
context="charurlpage|label32">Hyperlink</property>
-            <attributes>
-              <attribute name="weight" value="bold"/>
-            </attributes>
-          </object>
-        </child>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">0</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkFrame" id="charstyle">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label_xalign">0</property>
-        <property name="shadow_type">none</property>
-        <child>
-          <!-- n-columns=1 n-rows=1 -->
-          <object class="GtkGrid" id="grid6">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="row_spacing">6</property>
-            <property name="column_spacing">12</property>
-            <property name="margin-start">12</property>
-            <property name="margin-top">6</property>
-            <child>
-              <object class="GtkLabel" id="label34">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|label34">Visited links:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">visitedlb</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="label10">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes" 
context="charurlpage|label10">Unvisited links:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">unvisitedlb</property>
-                <property name="xalign">0</property>
-              </object>
-              <packing>
-                <property name="left_attach">0</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBoxText" id="visitedlb">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="visitedlb-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|visitedlb">Select a 
formatting style to use for visited links from the list. To add or modify a 
style in this list, close this dialog, and click the Styles icon on the 
Formatting toolbar.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkComboBoxText" id="unvisitedlb">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="unvisitedlb-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="charurlpage|extended_tip|unvisitedlb">Select a 
formatting style to use for unvisited links from the list. To add or modify a 
style in this list, close this dialog, and click the Styles icon on the 
Formatting toolbar.</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">1</property>
-              </packing>
-            </child>
-          </object>
-        </child>
-        <child type="label">
-          <object class="GtkLabel" id="label33">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="label" translatable="yes" 
context="charurlpage|label33">Character Styles</property>
-            <attributes>
-              <attribute name="weight" value="bold"/>
-            </attributes>
-          </object>
-        </child>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">1</property>
-      </packing>
-    </child>
-    <child internal-child="accessible">
-      <object class="AtkObject" id="CharURLPage-atkobject">
-        <property name="AtkObject::accessible-description" translatable="yes" 
context="charurlpage|extended_tip|CharURLPage">Assigns a new hyperlink or edits 
the selected hyperlink.</property>
-      </object>
-    </child>
-  </object>
-  <object class="GtkSizeGroup" id="sizegroup1">
-    <property name="ignore_hidden">True</property>
-    <widgets>
-      <widget name="label36"/>
-      <widget name="label37"/>
-      <widget name="textft"/>
-      <widget name="label39"/>
-      <widget name="label34"/>
-      <widget name="label10"/>
-    </widgets>
-  </object>
-  <object class="GtkSizeGroup" id="sizegroup2">
-    <property name="ignore_hidden">True</property>
-    <widgets>
-      <widget name="urled"/>
-      <widget name="nameed"/>
-      <widget name="texted"/>
-      <widget name="targetfrmlb"/>
-      <widget name="visitedlb"/>
-      <widget name="unvisitedlb"/>
-    </widgets>
-  </object>
-</interface>
diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx
index 661c782840a8..2e296279c1d2 100644
--- a/vcl/jsdialog/enabled.cxx
+++ b/vcl/jsdialog/enabled.cxx
@@ -215,7 +215,6 @@ constexpr auto SwriterDialogList
         { u"modules/swriter/ui/bulletsandnumbering.ui" },
         { u"modules/swriter/ui/captionoptions.ui" },
         { u"modules/swriter/ui/characterproperties.ui" },
-        { u"modules/swriter/ui/charurlpage.ui" },
         { u"modules/swriter/ui/columndialog.ui" },
         { u"modules/swriter/ui/columnpage.ui" },
         { u"modules/swriter/ui/contentcontroldlg.ui" },
commit f7b6e94ba43f55728ddf96cef40a759668f51e60
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Dec 10 15:03:30 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:39:21 2026 +0100

    add an accessible-name to the preview in the caption dialog
    
    similar to what we do in
    
    sw/uiconfig/swriter/ui/envformatpage.ui
    
    Change-Id: I0d7150909835f26aba8893f3fc4edb029ec65ac1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195385
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/uiconfig/swriter/ui/insertcaption.ui 
b/sw/uiconfig/swriter/ui/insertcaption.ui
index d11aa3f17c02..48ef6c1a2bf8 100644
--- a/sw/uiconfig/swriter/ui/insertcaption.ui
+++ b/sw/uiconfig/swriter/ui/insertcaption.ui
@@ -366,6 +366,11 @@
                           <object class="GtkDrawingArea" id="preview">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
+                            <child internal-child="accessible">
+                              <object class="AtkObject" id="preview-atkobject">
+                                <property name="AtkObject::accessible-name" 
translatable="yes" context="insertcaption|preview-atkobject">Preview</property>
+                              </object>
+                            </child>
                           </object>
                         </child>
                       </object>
commit efa34f054752f7ad4808ee2ae962ae6216d6340e
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Dec 10 20:03:45 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:39:09 2026 +0100

    drop CJK text from systemLanguage switch example
    
    because we run this test with set_non_application_font_use=abort so we
    don't expect any glyph substitution, and the default setup is without
    any bundled Japanese font.
    
    Change-Id: I2e7ead7404fbacb768c06502a52cde629c1a1116
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195407
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/svgio/qa/cppunit/data/tdf160386.svg 
b/svgio/qa/cppunit/data/tdf160386.svg
index 1644b0d15514..188aa4c34e54 100644
--- a/svgio/qa/cppunit/data/tdf160386.svg
+++ b/svgio/qa/cppunit/data/tdf160386.svg
@@ -8,9 +8,7 @@
     <text systemLanguage="en">Hello!</text>
     <text systemLanguage="es">Hola!</text>
     <text systemLanguage="fr">Bonjour!</text>
-    <text systemLanguage="ja">こんにちは</text>
     <text systemLanguage="ru">Привет!</text>
     <text>☺</text>
   </switch>
 </svg>
-
commit 89df859d7449a5c4d1c893c03411d21b1ae6f4b9
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Dec 10 21:09:40 2025 +0000
Commit:     Andras Timar <[email protected]>
CommitDate: Sat Jan 10 11:38:49 2026 +0100

    include VCLGenericClipboard for headless-only tests
    
    make CppunitTest_starmath_qa_cppunit  
CPPUNIT_TEST_NAME="Test::testCopyPaste"
    
    fails on --disable-gui build
    
    Change-Id: I811487dd57f1474ae93131bf57b5cd04470cdaa5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195409
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/vcl/vcl.common.component.headless 
b/vcl/vcl.common.component.headless
index 4300832e94b2..e92b54e7ca1b 100644
--- a/vcl/vcl.common.component.headless
+++ b/vcl/vcl.common.component.headless
@@ -3,6 +3,6 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
+com.sun.star.datatransfer.VCLGenericClipboard
 com.sun.star.frame.VCLSessionManagerClient
 vcl::FontIdentificator

Reply via email to