[Libreoffice-commits] core.git: Branch 'distro/collabora/co-2021' - 9 commits - configure.ac download.lst emfio/qa emfio/source extensions/source external/neon icon-themes/karasa_jaga icon-themes/karasa_jaga_svg icon-themes/sukapura icon-themes/sukapura_svg include/tools sc/inc sc/qa sc/source solenv/flatpak-manifest.in solenv/README tools/qa tools/source vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Apr 6 08:18:50 UTC 2021


 configure.ac                                         |    4 -
 download.lst                                         |    4 -
 emfio/qa/cppunit/emf/EmfImportTest.cxx               |   24 +++++++
 emfio/qa/cppunit/emf/data/TestFillRegion.emf         |binary
 emfio/source/reader/emfreader.cxx                    |   60 +++++++++++--------
 extensions/source/propctrlr/usercontrol.cxx          |    9 +-
 extensions/source/propctrlr/usercontrol.hxx          |    7 +-
 external/neon/configs/config.h                       |   10 +--
 icon-themes/karasa_jaga/cmd/ar/sc_setoutline.png     |binary
 icon-themes/karasa_jaga/cmd/sc_setoutline.png        |binary
 icon-themes/karasa_jaga_svg/cmd/ar/sc_setoutline.svg |    2 
 icon-themes/karasa_jaga_svg/cmd/sc_setoutline.svg    |    2 
 icon-themes/sukapura/cmd/sc_paralefttoright.png      |binary
 icon-themes/sukapura/cmd/sc_pararighttoleft.png      |binary
 icon-themes/sukapura_svg/cmd/sc_paralefttoright.svg  |    6 +
 icon-themes/sukapura_svg/cmd/sc_pararighttoleft.svg  |    6 +
 include/tools/date.hxx                               |    5 +
 sc/inc/global.hxx                                    |    1 
 sc/qa/unit/ucalc.cxx                                 |   16 +++++
 sc/source/core/data/table4.cxx                       |   23 ++++++-
 solenv/README                                        |    7 ++
 solenv/flatpak-manifest.in                           |    6 -
 tools/qa/cppunit/test_date.cxx                       |   25 +++++++
 tools/source/datetime/tdate.cxx                      |   11 +++
 vcl/source/window/layout.cxx                         |   27 +++++---
 vcl/source/window/syswin.cxx                         |    5 +
 26 files changed, 199 insertions(+), 61 deletions(-)

New commits:
commit 3a009b40801744a7af4c2bb8582ca618259f42a7
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Apr 2 15:05:48 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:18:14 2021 +0200

    tdf#141318 Dialog::GetOptimalSize not including border if called before Show
    
    Change-Id: I96ed67d84660106af2ef5de488da8abc7d556d1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113483
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 8e396207df92..04139f454881 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -1066,7 +1066,10 @@ Size SystemWindow::GetOptimalSize() const
     if (!isLayoutEnabled())
         return Window::GetOptimalSize();
 
-    Size aSize = VclContainer::getLayoutRequisition(*GetWindow(GetWindowType::FirstChild));
+    Window *pBox = GetWindow(GetWindowType::FirstChild);
+    // tdf#141318 Do the same as SystemWindow::setOptimalLayoutSize in case we're called before initial layout
+    const_cast<SystemWindow*>(this)->settingOptimalLayoutSize(pBox);
+    Size aSize = VclContainer::getLayoutRequisition(*pBox);
 
     sal_Int32 nBorderWidth = get_border_width();
 
commit 2ffe3b511b9563549435843253f4dfd042a7bb2b
Author:     Andreas Heinisch <andreas.heinisch at yahoo.de>
AuthorDate: Tue Mar 23 10:54:14 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:18:10 2021 +0200

    tdf#58745 - Detect end of month when extending a date list
    
    Change-Id: Icaa64a493598dc4bb8f2d6d076ad4300e2e4dde6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112976
    Tested-by: Jenkins
    Reviewed-by: Andreas Heinisch <andreas.heinisch at yahoo.de>
    Signed-off-by: Xisco Fauli <xiscofauli at libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113156
    Reviewed-by: Eike Rathke <erack at redhat.com>

diff --git a/include/tools/date.hxx b/include/tools/date.hxx
index cd69d16b10b6..6179d637e8ba 100644
--- a/include/tools/date.hxx
+++ b/include/tools/date.hxx
@@ -188,6 +188,9 @@ public:
         depending on month/year) */
     bool            IsValidDate() const;
 
+    // Returns true, if the date is the end of the month, false otherwise.
+    bool            IsEndOfMonth() const;
+
     /** Normalize date, invalid day or month values are adapted such that they
         carry over to the next month or/and year, for example 1999-02-32
         becomes 1999-03-04, 1999-13-01 becomes 2000-01-01, 1999-13-42 becomes
@@ -239,6 +242,8 @@ public:
     static sal_Int32 DateToDays( sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear );
     /// Semantically identical to IsValidDate() member method.
     static bool IsValidDate( sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear );
+    /// Semantically identical to IsEndOfMonth() member method.
+    static bool IsEndOfMonth(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear);
     /// Semantically identical to Normalize() member method.
     static bool Normalize( sal_uInt16 & rDay, sal_uInt16 & rMonth, sal_Int16 & rYear );
 
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 3574a0aab0ed..21d33ccc35e9 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -346,6 +346,7 @@ enum FillDateCmd
         FILL_DAY,
         FILL_WEEKDAY,
         FILL_MONTH,
+        FILL_END_OF_MONTH,
         FILL_YEAR
     };
 
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index f5da5620744c..5b339eba8f67 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -4831,6 +4831,22 @@ void Test::testAutoFill()
         CPPUNIT_ASSERT_EQUAL(aExpected, aFormula);
     }
 
+    // Clear column A for a new test.
+    clearRange(m_pDoc, ScRange(0, 0, 0, 0, MAXROW, 0));
+    m_pDoc->SetRowHidden(0, MAXROW, 0, false); // Show all rows.
+
+    m_pDoc->SetString(0, 100, 0, "2019-10-31");
+    m_pDoc->SetString(0, 101, 0, "2019-11-30");
+    m_pDoc->SetString(0, 102, 0, "2019-12-31");
+    m_pDoc->Fill(0, 100, 0, 102, nullptr, aMarkData, 3, FILL_TO_BOTTOM, FILL_AUTO);
+
+    // tdf#58745, Without the fix in place, this test would have failed with
+    // - Expected: 2020-01-31
+    // - Actual  : 2019-01-11
+    CPPUNIT_ASSERT_EQUAL(OUString("2020-01-31"), m_pDoc->GetString(0, 103, 0));
+    CPPUNIT_ASSERT_EQUAL(OUString("2020-02-29"), m_pDoc->GetString(0, 104, 0));
+    CPPUNIT_ASSERT_EQUAL(OUString("2020-03-31"), m_pDoc->GetString(0, 105, 0));
+
     m_pDoc->DeleteTab(0);
 }
 
diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx
index ede354eead8c..392eb8847028 100644
--- a/sc/source/core/data/table4.cxx
+++ b/sc/source/core/data/table4.cxx
@@ -534,7 +534,12 @@ void ScTable::FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                     tools::Long nDDiff = aDate2.GetDay()   - static_cast<tools::Long>(aDate1.GetDay());
                     tools::Long nMDiff = aDate2.GetMonth() - static_cast<tools::Long>(aDate1.GetMonth());
                     tools::Long nYDiff = aDate2.GetYear()  - static_cast<tools::Long>(aDate1.GetYear());
-                    if ( nDDiff )
+                    if (nMDiff && aDate1.IsEndOfMonth() && aDate2.IsEndOfMonth())
+                    {
+                        eType = FILL_END_OF_MONTH;
+                        nCmpInc = nMDiff + 12 * nYDiff;
+                    }
+                    else if (nDDiff)
                     {
                         eType = FILL_DAY;
                         nCmpInc = aDate2 - aDate1;
@@ -565,7 +570,8 @@ void ScTable::FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                                 nDDiff = aDate2.GetDay()   - static_cast<tools::Long>(aDate1.GetDay());
                                 nMDiff = aDate2.GetMonth() - static_cast<tools::Long>(aDate1.GetMonth());
                                 nYDiff = aDate2.GetYear()  - static_cast<tools::Long>(aDate1.GetYear());
-                                if (nDDiff || ( nMDiff + 12 * nYDiff != nCmpInc ))
+                                if ((nDDiff && !aDate1.IsEndOfMonth() && !aDate2.IsEndOfMonth())
+                                    || (nMDiff + 12 * nYDiff != nCmpInc))
                                     bVal = false;
                             }
                             aDate1 = aDate2;
@@ -577,7 +583,8 @@ void ScTable::FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                     }
                     if (bVal)
                     {
-                        if ( eType == FILL_MONTH && ( nCmpInc % 12 == 0 ) )
+                        if ((eType == FILL_MONTH || eType == FILL_END_OF_MONTH)
+                            && (nCmpInc % 12 == 0))
                         {
                             eType = FILL_YEAR;
                             nCmpInc /= 12;
@@ -1513,6 +1520,7 @@ void ScTable::IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillD
             }
             break;
         case FILL_MONTH:
+        case FILL_END_OF_MONTH:
             {
                 if ( nDayOfMonth == 0 )
                     nDayOfMonth = aDate.GetDay();       // init
@@ -1548,7 +1556,14 @@ void ScTable::IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillD
                 {
                     aDate.SetMonth(static_cast<sal_uInt16>(nMonth));
                     aDate.SetYear(static_cast<sal_uInt16>(nYear));
-                    aDate.SetDay( std::min( Date::GetDaysInMonth( nMonth, nYear), nDayOfMonth ) );
+                    if (eCmd == FILL_END_OF_MONTH)
+                    {
+                        aDate.SetDay(Date::GetDaysInMonth(nMonth, nYear));
+                    }
+                    else
+                    {
+                        aDate.SetDay(std::min(Date::GetDaysInMonth(nMonth, nYear), nDayOfMonth));
+                    }
                 }
             }
             break;
diff --git a/tools/qa/cppunit/test_date.cxx b/tools/qa/cppunit/test_date.cxx
index 9a243cce504c..e11270e6a299 100644
--- a/tools/qa/cppunit/test_date.cxx
+++ b/tools/qa/cppunit/test_date.cxx
@@ -26,6 +26,7 @@ public:
     void testGetDayOfWeek();
     void testGetDaysInMonth();
     void testIsBetween();
+    void testIsEndOfMonth();
 
     CPPUNIT_TEST_SUITE(DateTest);
     CPPUNIT_TEST(testDate);
@@ -37,6 +38,7 @@ public:
     CPPUNIT_TEST(testGetDayOfWeek);
     CPPUNIT_TEST(testGetDaysInMonth);
     CPPUNIT_TEST(testIsBetween);
+    CPPUNIT_TEST(testIsEndOfMonth);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -533,6 +535,29 @@ void DateTest::testIsBetween()
     CPPUNIT_ASSERT(aDate.IsBetween(Date(1, 1, 2018), Date(1, 12, 2018)));
 }
 
+void DateTest::testIsEndOfMonth()
+{
+    {
+        Date aDate(31, 12, 2000);
+        CPPUNIT_ASSERT(aDate.IsEndOfMonth());
+    }
+
+    {
+        Date aDate(30, 12, 2000);
+        CPPUNIT_ASSERT(!aDate.IsEndOfMonth());
+    }
+
+    {
+        Date aDate(29, 2, 2000);
+        CPPUNIT_ASSERT(aDate.IsEndOfMonth());
+    }
+
+    {
+        Date aDate(28, 2, 2000);
+        CPPUNIT_ASSERT(!aDate.IsEndOfMonth());
+    }
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(DateTest);
 }
 
diff --git a/tools/source/datetime/tdate.cxx b/tools/source/datetime/tdate.cxx
index a38fb8e986c3..979611333813 100644
--- a/tools/source/datetime/tdate.cxx
+++ b/tools/source/datetime/tdate.cxx
@@ -452,6 +452,17 @@ bool Date::IsValidDate( sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear )
     return true;
 }
 
+bool Date::IsEndOfMonth() const
+{
+    return IsEndOfMonth(GetDay(), GetMonth(), GetYear());
+}
+
+//static
+bool Date::IsEndOfMonth(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear)
+{
+    return IsValidDate(nDay, nMonth, nYear) && ImplDaysInMonth(nMonth, nYear) == nDay;
+}
+
 void Date::Normalize()
 {
     sal_uInt16 nDay   = GetDay();
commit b56dc807439d7174e223f9775c614488951b4d14
Author:     Bartosz Kosiorek <gang65 at poczta.onet.pl>
AuthorDate: Thu Apr 1 16:42:34 2021 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:18:05 2021 +0200

    tdf#55058 EMF: Implement PAINTRGN record
    
    The EMR_PAINTRGN record paints the specified region by using the brush
    currently selected into the playback device context.
    
    After implement support for PAINTRGN record, the reference image
    is displayed correctly:
    https://sourceforge.net/projects/libuemf/
    
    Change-Id: I761779713d1200e6079ff798e9c3c9aaba57ad4f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113461
    Tested-by: Jenkins
    Reviewed-by: Bartosz Kosiorek <gang65 at poczta.onet.pl>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113561

diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index 1d1adc2f49aa..24fcf9095e3e 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -1924,6 +1924,18 @@ namespace emfio
                     }
                     break;
 
+                    case EMR_PAINTRGN :
+                    {
+                        sal_uInt32 nRgnDataSize;
+                        tools::PolyPolygon aPolyPoly;
+                        mpInputStream->SeekRel( 0x10 ); // Skipping RectL bounds
+                        mpInputStream->ReadUInt32( nRgnDataSize );
+
+                        if ( ImplReadRegion( aPolyPoly, *mpInputStream, nRecSize ) )
+                            DrawPolyPolygon( aPolyPoly );
+                    }
+                    break;
+
                     case EMR_CREATEDIBPATTERNBRUSHPT :
                     {
                         sal_uInt32  nStart = mpInputStream->Tell() - 8;
@@ -1977,7 +1989,6 @@ namespace emfio
                     case EMR_SETDIBITSTODEVICE :        SAL_WARN("emfio", "not implemented 'SetDIBitsToDevice'");         break;
                     case EMR_FRAMERGN :                 SAL_WARN("emfio", "not implemented 'FrameRgn'");                  break;
                     case EMR_INVERTRGN :                SAL_WARN("emfio", "not implemented 'InvertRgn'");                 break;
-                    case EMR_PAINTRGN :                 SAL_WARN("emfio", "not implemented 'PaintRgn'");                  break;
                     case EMR_FLATTENPATH :              SAL_WARN("emfio", "not implemented 'FlattenPath'");               break;
                     case EMR_WIDENPATH :                SAL_WARN("emfio", "not implemented 'WidenPath'");                 break;
                     case EMR_POLYDRAW :                 SAL_WARN("emfio", "not implemented 'Polydraw'");                  break;
commit 95495ff7a561b46322187e94176aa01a7693d63e
Author:     Bartosz Kosiorek <gang65 at poczta.onet.pl>
AuthorDate: Wed Mar 31 17:50:59 2021 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:18:01 2021 +0200

    tdf#55058 tdf#141394 EMF FILLRGN record is not displayed correctly
    
    The EMR_FILLRGN record fills the specified region by using the specified brush.
    
    After deep analyse of [EMF] documentation, it seems that
    bounds from RegionDataHeader was treated as first rectangle of
    region. As a result whole bounds was treated as the Region.
    
    Change-Id: Ie34877b71292c05a1f17381a6de51aaed2386565
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113423
    Tested-by: Jenkins
    Reviewed-by: Bartosz Kosiorek <gang65 at poczta.onet.pl>
    (cherry picked from commit 5d4d8278b7fd2a555d6c9678d37877853562bd85)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113367
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/emfio/qa/cppunit/emf/EmfImportTest.cxx b/emfio/qa/cppunit/emf/EmfImportTest.cxx
index 7ec0e915abdc..f4c75e883d30 100644
--- a/emfio/qa/cppunit/emf/EmfImportTest.cxx
+++ b/emfio/qa/cppunit/emf/EmfImportTest.cxx
@@ -50,6 +50,7 @@ class Test : public test::BootstrapFixture, public XmlTestTools, public unotest:
     void TestLinearGradient();
     void TestTextMapMode();
     void TestEnglishMapMode();
+    void TestFillRegion();
     void TestCreatePen();
     void TestPdfInEmf();
 
@@ -68,6 +69,7 @@ public:
     CPPUNIT_TEST(TestLinearGradient);
     CPPUNIT_TEST(TestTextMapMode);
     CPPUNIT_TEST(TestEnglishMapMode);
+    CPPUNIT_TEST(TestFillRegion);
     CPPUNIT_TEST(TestCreatePen);
     CPPUNIT_TEST(TestPdfInEmf);
     CPPUNIT_TEST_SUITE_END();
@@ -308,6 +310,28 @@ void Test::TestEnglishMapMode()
 
 }
 
+void Test::TestFillRegion()
+{
+    // Check import of EMF image with records: CREATEBRUSHINDIRECT, FILLRGN. The SETICMMODE is also used.
+    Primitive2DSequence aSequence = parseEmf(u"/emfio/qa/cppunit/emf/data/TestFillRegion.emf");
+    CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(aSequence.getLength()));
+    drawinglayer::Primitive2dXmlDump dumper;
+    xmlDocUniquePtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(aSequence));
+    CPPUNIT_ASSERT (pDocument);
+
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polypolygon", "path", "m0 0h3943v3939h-3943z");
+
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polypolygoncolor", 1);
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polypolygoncolor[1]/polypolygon",
+                "path", "m1323 0h1323v1322h1323v1322h-1323v1322h-1323v-1322h-1323v-1322h1323z");
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polypolygoncolor[1]", "color", "#ff0000");
+
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polygonhairline", 1);
+    assertXPathContent(pDocument, "/primitive2D/metafile/transform/mask/polygonhairline[1]/polygon",
+                       "1323,0 2646,0 2646,1322 3969,1322 3969,2644 2646,2644 2646,3966 1323,3966 1323,2644 0,2644 0,1322 1323,1322");
+    assertXPath(pDocument, "/primitive2D/metafile/transform/mask/polygonhairline[1]", "color", "#000000");
+}
+
 void Test::TestCreatePen()
 {
     // Check import of EMF image with records: RESTOREDC, SAVEDC, MOVETOEX, LINETO, POLYLINE16, EXTTEXTOUTW with DxBuffer
diff --git a/emfio/qa/cppunit/emf/data/TestFillRegion.emf b/emfio/qa/cppunit/emf/data/TestFillRegion.emf
new file mode 100644
index 000000000000..da7d4cd65d1f
Binary files /dev/null and b/emfio/qa/cppunit/emf/data/TestFillRegion.emf differ
diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index 4c0859bbff5a..1d1adc2f49aa 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -329,41 +329,44 @@ SvStream& operator>>(SvStream& rInStream, BLENDFUNCTION& rBlendFun)
 
 bool ImplReadRegion( tools::PolyPolygon& rPolyPoly, SvStream& rStream, sal_uInt32 nLen )
 {
-    if (nLen == 0)
+    if (nLen < 32) // 32 bytes - Size of RegionDataHeader
         return false;
 
-    sal_uInt32 nHdSize, nType, nCount, nRgnSize, i;
+    sal_uInt32 nHdSize, nType, nCountRects, nRgnSize, i;
     rStream.ReadUInt32(nHdSize);
     rStream.ReadUInt32(nType);
-    rStream.ReadUInt32(nCount);
+    rStream.ReadUInt32(nCountRects);
     rStream.ReadUInt32(nRgnSize);
 
-    if (!rStream.good() || nCount == 0 || nType != RDH_RECTANGLES)
+    if (!rStream.good() || nCountRects == 0 || nType != RDH_RECTANGLES)
         return false;
 
+    //bounds of the region
+    sal_Int32 nLeft, nTop, nRight, nBottom;
+    rStream.ReadInt32(nLeft);
+    rStream.ReadInt32(nTop);
+    rStream.ReadInt32(nRight);
+    rStream.ReadInt32(nBottom);
+    SAL_INFO("emfio", "\t\tLeft: " << nLeft << ", top: " << nTop << ", right: " << nRight << ", bottom: " << nBottom);
+
     sal_uInt32 nSize;
-    if (o3tl::checked_multiply<sal_uInt32>(nCount, 16, nSize))
+    if (o3tl::checked_multiply<sal_uInt32>(nCountRects, 16, nSize))
         return false;
     if (o3tl::checked_add<sal_uInt32>(nSize, nHdSize - 16, nSize))
         return false;
     if (nLen < nSize)
         return false;
 
-    sal_Int32 nx1, ny1, nx2, ny2;
-    for (i = 0; i < nCount; i++)
+    for (i = 0; i < nCountRects; i++)
     {
-        rStream.ReadInt32(nx1);
-        rStream.ReadInt32(ny1);
-        rStream.ReadInt32(nx2);
-        rStream.ReadInt32(ny2);
-
-        tools::Rectangle aRectangle(Point(nx1, ny1), Point(nx2, ny2));
-
-        tools::Polygon aPolygon(aRectangle);
-        tools::PolyPolygon aPolyPolyOr1(aPolygon);
-        tools::PolyPolygon aPolyPolyOr2(rPolyPoly);
-        rPolyPoly.GetUnion(aPolyPolyOr1, aPolyPolyOr2);
-        rPolyPoly = aPolyPolyOr2;
+        rStream.ReadInt32(nLeft);
+        rStream.ReadInt32(nTop);
+        rStream.ReadInt32(nRight);
+        rStream.ReadInt32(nBottom);
+
+        SAL_INFO("emfio", "\t\tLeft: " << nLeft << ", top: " << nTop << ", right: " << nRight << ", bottom: " << nBottom);
+        tools::PolyPolygon aPolyPolyOr1(tools::Polygon(tools::Rectangle(nLeft, nTop, nRight, nBottom)));
+        rPolyPoly.GetUnion(aPolyPolyOr1, rPolyPoly);
     }
     return true;
 }
@@ -1906,10 +1909,10 @@ namespace emfio
 
                     case EMR_FILLRGN :
                     {
-                        sal_uInt32 nLen;
+                        sal_uInt32 nRgnDataSize;
                         tools::PolyPolygon aPolyPoly;
-                        mpInputStream->SeekRel( 0x10 );
-                        mpInputStream->ReadUInt32( nLen ).ReadUInt32( nIndex );
+                        mpInputStream->SeekRel( 0x10 );  // RectL bounds
+                        mpInputStream->ReadUInt32( nRgnDataSize ).ReadUInt32( nIndex );
 
                         if ( ImplReadRegion( aPolyPoly, *mpInputStream, nRecSize ) )
                         {
commit 14418f065002457e9fd5036bb6a5d5788bf32655
Author:     Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Fri Apr 2 02:20:57 2021 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:17:57 2021 +0200

    tdf#140229 neon: update to release 0.31.2
    
    I didn't check all commits, but the most likely fix was "Fix hang
    on SSL connection close with IIS (issue #11)". The server from
    this bug report is a "Microsoft-IIS/10.0", according to the output
    from "curl --dump-header".
    
    Not sure this bug is critical enough to bump the neon dependency
    in configure.
    
    Change-Id: I3e20bad1aa732641e6f8a83316e58fc7513186c6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113495
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
    (cherry picked from commit c974b23ff78dbe11a7b23f7317fdd096ab8cb282)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113523
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/configure.ac b/configure.ac
index 962c24516905..57e1f7c0f180 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10598,11 +10598,11 @@ serf)
 neon)
     AC_MSG_RESULT([neon])
     # Check for system neon
-    libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.31.1])
+    libo_CHECK_SYSTEM_MODULE([neon],[NEON],[neon >= 0.31.2])
     if test "$with_system_neon" = "yes"; then
         NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`"
     else
-        NEON_VERSION=0311
+        NEON_VERSION=0312
     fi
     AC_SUBST(NEON_VERSION)
     ;;
diff --git a/download.lst b/download.lst
index 83063629e3b4..16a74fe081f0 100644
--- a/download.lst
+++ b/download.lst
@@ -213,8 +213,8 @@ export MWAW_VERSION_MICRO := 17
 export MWAW_TARBALL := libmwaw-0.3.$(MWAW_VERSION_MICRO).tar.xz
 export MYTHES_SHA256SUM := 1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b0e0790a305f
 export MYTHES_TARBALL := a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz
-export NEON_SHA256SUM := c9dfcee723050df37ce18ba449d7707b78e7ab8230f3a4c59d9112e17dc2718d
-export NEON_TARBALL := neon-0.31.1.tar.gz
+export NEON_SHA256SUM := cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678
+export NEON_TARBALL := neon-0.31.2.tar.gz
 export NSS_SHA256SUM := ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45
 export NSS_TARBALL := nss-3.55-with-nspr-4.27.tar.gz
 export ODFGEN_SHA256SUM := 2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2
diff --git a/external/neon/configs/config.h b/external/neon/configs/config.h
index 3f93d1e68132..af8408ad9ad3 100644
--- a/external/neon/configs/config.h
+++ b/external/neon/configs/config.h
@@ -1,4 +1,4 @@
-/* Contents kept in sync with config.h.in from neon 0.31.1 */
+/* Contents kept in sync with config.h.in from neon 0.31.2 */
 
 /* Define if building universal (internal helper macro) */
 /* #undef AC_APPLE_UNIVERSAL_BUILD */
@@ -370,7 +370,7 @@
 #define NEON_IS_LIBRARY 1
 
 /* Define to be the neon version string */
-#define NEON_VERSION "0.31.1"
+#define NEON_VERSION "0.31.2"
 
 /* Define to enable debugging */
 /* #undef NE_DEBUGGING */
@@ -435,7 +435,7 @@
 #define NE_VERSION_MINOR (31)
 
 /* Define to be neon library patch version */
-#define NE_VERSION_PATCH (1)
+#define NE_VERSION_PATCH (2)
 
 /* Define to the address where bug reports for this package should be sent. */
 #define PACKAGE_BUGREPORT "neon at webdav.org"
@@ -444,13 +444,13 @@
 #define PACKAGE_NAME "neon"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "neon 0.31.1"
+#define PACKAGE_STRING "neon 0.31.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "neon"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.31.1"
+#define PACKAGE_VERSION "0.31.2"
 
 /* The size of `int', as computed by sizeof. */
 #define SIZEOF_INT 4
diff --git a/solenv/README b/solenv/README
index 68e58e8bc774..b5a730746674 100644
--- a/solenv/README
+++ b/solenv/README
@@ -32,3 +32,10 @@ src/
     useful standard / re-usable component map files for components
     which shouldn't export anything more than a few registration
     symbols.
+
+flatpak-manifest.in
+    This file is used by flatpak/build.sh from the LO dev-tools
+    repository to generate the flatpak package. download.lst is
+    a Makefile snippet, so there seems to be no easy way to use
+    download.lst for the manifest generation (build.sh uses sed),
+    and its information must be kept in sync manually.
diff --git a/solenv/flatpak-manifest.in b/solenv/flatpak-manifest.in
index 9d2554da26f8..aababaf988dd 100644
--- a/solenv/flatpak-manifest.in
+++ b/solenv/flatpak-manifest.in
@@ -357,10 +357,10 @@
                     "dest-filename": "external/tarballs/mdds-1.7.0.tar.bz2"
                 },
                 {
-                    "url": "https://dev-www.libreoffice.org/src/neon-0.31.1.tar.gz",
-                    "sha256": "c9dfcee723050df37ce18ba449d7707b78e7ab8230f3a4c59d9112e17dc2718d",
+                    "url": "https://dev-www.libreoffice.org/src/neon-0.31.2.tar.gz",
+                    "sha256": "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678",
                     "type": "file",
-                    "dest-filename": "external/tarballs/neon-0.31.1.tar.gz"
+                    "dest-filename": "external/tarballs/neon-0.31.2.tar.gz"
                 },
                 {
                     "url": "https://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz",
commit 5dc1b728bb42a239812386f15e31f8d444c4c07a
Author:     Rizal Muttaqin <riz_17_oke at yahoo.co.id>
AuthorDate: Thu Apr 1 11:32:45 2021 +0700
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:17:52 2021 +0200

    Sukapura: Improve sharpness of small Left To Right &
    Right To Left icons
    
    Change-Id: Id3ea8f601acfd01bef46e32079ff4dadba3654c3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113436
    Tested-by: Jenkins
    Reviewed-by: Rizal Muttaqin <rizmut at libreoffice.org>
    (cherry picked from commit fba6c9b7b0c50a8f33ef71424cdce2ae0ea9cceb)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113480

diff --git a/icon-themes/sukapura/cmd/sc_paralefttoright.png b/icon-themes/sukapura/cmd/sc_paralefttoright.png
index 87a901aef6a9..f9669c7896e9 100644
Binary files a/icon-themes/sukapura/cmd/sc_paralefttoright.png and b/icon-themes/sukapura/cmd/sc_paralefttoright.png differ
diff --git a/icon-themes/sukapura/cmd/sc_pararighttoleft.png b/icon-themes/sukapura/cmd/sc_pararighttoleft.png
index e94f0e9f9ec5..e791888a2e45 100644
Binary files a/icon-themes/sukapura/cmd/sc_pararighttoleft.png and b/icon-themes/sukapura/cmd/sc_pararighttoleft.png differ
diff --git a/icon-themes/sukapura_svg/cmd/sc_paralefttoright.svg b/icon-themes/sukapura_svg/cmd/sc_paralefttoright.svg
index 02857d82f3b8..3ad9f54a5c6c 100644
--- a/icon-themes/sukapura_svg/cmd/sc_paralefttoright.svg
+++ b/icon-themes/sukapura_svg/cmd/sc_paralefttoright.svg
@@ -1,4 +1,6 @@
-<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-25.399053" x2="-25.306424" y1="12.312397" y2="5.504995"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient>
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(-1 0 0 1 7.000103 5)" gradientUnits="userSpaceOnUse" x1="5.000103" x2="5.000103" y1="11" y2="4"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient>
 
 
-/&amp;amp;amp;gt;<path d="m6 0c-2.209139 0-4 1.790861-4 4s1.790861 4 4 4v1.8671875l1.4941406 1.4941405-.2207031-.166016c.4596022.255718.6969053.72661.7265625 1.210938v-10.40625h2v14h2v-14l3-1v-1h-3-2-2zm2 12.597656c-.0273617.481987-.259874.952435-.7148438 1.210938l.2109376-.160156-1.4960938 1.490234v.861328h2z" fill="#4b4b4f"/><path d="m3.5273438 9c-.3055168-.007736-.4934255.2409329-.4960938.5h-.03125v2h-2.5c-.277 0-.5.223-.5.5v.505859.494141c0 .277.223.5.5.5h2.5v2h.0117188c.0083813.382489.5000415.706965.859375.349609l2.9199218-2.910156c.3388519-.192527.336656-.681609-.0039062-.871094l-2.9160156-2.9160152c-.0903789-.0935991-.2137025-.1482538-.34375-.1523438z" fill="url(#a)" fill-rule="evenodd"/></svg>
\ No newline at end of file
+
+
+/&amp;amp;amp;amp;amp;gt;<path d="m6 0c-2.209139 0-4 1.790861-4 4s1.790861 4 4 4v1 .8671875 5.2714845.361328.5h2v-.5-2.902344-.191406-3.40625-7h2v14h2v-14l3-1v-1h-3-2-2z" fill="#4b4b4f"/><path d="m6 8.8789062v.1210938.8671875 5.2714845.361328.5h.1210938l1.8789062-1.878906v-1.523438-.191406-1.527344z" fill="#fafafa" fill-opacity=".784314"/><path d="m4.515625 9.0000003c.1271638.00407.247996.05645.3378906.1464847l3 3c.1951757.195268.1951757.511763 0 .707031l-3 3c-.3143393.314083-.8515776.092794-.8535156-.351563v-1.501953l-3.49989743-.000001c-.2753644-.0011-.49996629-.224633-.49999999-.5v-2c.0000342-.276891.2250632-.501045.50195309-.5l3.49794433.000001v-1.5c-.0000999-.282345.2334165-.508785.515625-.4999997z" fill="url(#a)"/></svg>
\ No newline at end of file
diff --git a/icon-themes/sukapura_svg/cmd/sc_pararighttoleft.svg b/icon-themes/sukapura_svg/cmd/sc_pararighttoleft.svg
index 373986b0a318..94b69ee00a36 100644
--- a/icon-themes/sukapura_svg/cmd/sc_pararighttoleft.svg
+++ b/icon-themes/sukapura_svg/cmd/sc_pararighttoleft.svg
@@ -1,4 +1,6 @@
-<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-11.169561" x2="-11.316629" y1="12.264457" y2="5.457056"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient>
+<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="14" x2="14" y1="16" y2="9"><stop offset="0" stop-color="#0040dd"/><stop offset="1" stop-color="#0a84ff"/></linearGradient>
 
 
-/&amp;amp;amp;gt;<path d="m12.472657 9c.305517-.00774.493425.2409329.496094.5h.03125v2h2.5c.277 0 .5.223.5.5v.505859.494141c0 .277-.223.5-.5.5h-2.5v2h-.01172c-.0084.382489-.500042.706965-.859375.349609l-2.9199211-2.910156c-.3388519-.192527-.336656-.681609.00391-.871094l2.9160121-2.9160152c.090379-.0935991.213702-.1482538.34375-.1523438z" fill="url(#a)" fill-rule="evenodd"/><path d="m5 0c-2.209139 0-4 1.790861-4 4s1.790861 4 4 4v8h2v-14h2v8.861328l2-1.9941405v-6.8671875l3-1v-1h-3-2-2zm4 14.136719v1.863281h1.863281z" fill="#4b4b4f"/></svg>
\ No newline at end of file
+
+
+/&amp;amp;amp;amp;amp;gt;<path d="m5 0c-2.209139 0-4 1.790861-4 4s1.790861 4 4 4v1 .8671875 5.2714845.361328.5h2v-.5-2.902344-.191406-3.40625-7h2v14h2v-14l3-1v-1h-3-2-2z" fill="#4b4b4f"/><path d="m11 8.0898438c-.210633.07404-.406112.1890652-.566406.3496093l-1.433594 1.4335938v5.2539061l.8730469.873047h1.1269531z" fill="#fafafa" fill-opacity=".784314"/><path d="m11.484375 9.0000003c-.127164.00407-.247996.05645-.337891.1464847l-3 3c-.1951757.195268-.1951757.511763 0 .707031l3 3c.314339.314083.851578.09279.853516-.351563v-1.501953l3.499897-.000001c.275364-.0011.499966-.224633.5-.5v-2c-.000034-.276891-.225063-.501045-.501953-.5l-3.497944.000001v-1.5c.0001-.282345-.233417-.508785-.515625-.4999997z" fill="url(#a)"/></svg>
\ No newline at end of file
commit af7cea9dbfcd77e7467d58c8b419d1d4094de0ba
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Apr 1 17:31:58 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:17:47 2021 +0200

    tdf#141084 don't notify that the control has changed content until focus-out
    
    while also keeping tdf#140239 working too
    
    Change-Id: I42833f6a4d2440781cf3f2297b78c6e313b3d239
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113474
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/extensions/source/propctrlr/usercontrol.cxx b/extensions/source/propctrlr/usercontrol.cxx
index fbf829b62938..345162ecffa0 100644
--- a/extensions/source/propctrlr/usercontrol.cxx
+++ b/extensions/source/propctrlr/usercontrol.cxx
@@ -248,9 +248,7 @@ namespace pcr
         bool bSuccess = rValue >>= sURL;
         if (bSuccess && GraphicObject::isGraphicObjectUniqueIdURL(sURL))
             sURL = pControlWindow->GetPlaceHolder();
-        // tdf#140239 leave current cursor valid if the contents won't change
-        if (sURL != pControlWindow->GetURL())
-            pControlWindow->set_entry_text(sURL);
+        pControlWindow->set_entry_text(sURL);
     }
 
     Any SAL_CALL OFileUrlControl::getValue()
@@ -266,6 +264,11 @@ namespace pcr
         return ::cppu::UnoType<OUString>::get();
     }
 
+    IMPL_LINK_NOARG(OFileUrlControl, URLModifiedHdl, weld::ComboBox&, void)
+    {
+        editChanged();
+    }
+
 } // namespace pcr
 
 
diff --git a/extensions/source/propctrlr/usercontrol.hxx b/extensions/source/propctrlr/usercontrol.hxx
index facc2621707f..74821a25d0d4 100644
--- a/extensions/source/propctrlr/usercontrol.hxx
+++ b/extensions/source/propctrlr/usercontrol.hxx
@@ -119,6 +119,8 @@ namespace pcr
     typedef CommonBehaviourControl<css::inspection::XPropertyControl, SvtURLBox> OFileUrlControl_Base;
     class OFileUrlControl : public OFileUrlControl_Base
     {
+    private:
+        DECL_LINK(URLModifiedHdl, weld::ComboBox&, void);
     public:
         OFileUrlControl(std::unique_ptr<SvtURLBox> xWidget, std::unique_ptr<weld::Builder> xBuilder, bool bReadOnly);
 
@@ -130,7 +132,10 @@ namespace pcr
         virtual void SetModifyHandler() override
         {
             OFileUrlControl_Base::SetModifyHandler();
-            getTypedControlWindow()->connect_changed(LINK(this, CommonBehaviourControlHelper, ModifiedHdl));
+            SvtURLBox* pControlWindow = getTypedControlWindow();
+            // tdf#140239 and tdf#141084 don't notify that the control has changed content until focus-out
+            pControlWindow->connect_focus_out(LINK(this, CommonBehaviourControlHelper, LoseFocusHdl));
+            pControlWindow->connect_changed(LINK(this, OFileUrlControl, URLModifiedHdl));
         }
 
         virtual weld::Widget* getWidget() override { return getTypedControlWindow()->getWidget(); }
commit 68ee7f1e3c54aab34e42b81cf47f75beef11fc3c
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Apr 1 10:31:27 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:17:43 2021 +0200

    Resolves: tdf#141258 turn scrollbars on/off once per layout loop
    
    in this scenario the vertical scrollbar is turned off, then turned on
    back to its original state but the off/on triggers another layout
    loop later which does the same thing. Turn on/off just once per loop
    so only one state change can occur so new layout is only triggered
    if the state really changes.
    
    Change-Id: I5736264a74723a15034e5fb467262dca6c0f283c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113370
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 2cf77e81a688..9406aa4585f5 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1913,31 +1913,36 @@ void VclScrolledWindow::doSetAllocation(const Size &rAllocation, bool bRetryOnFa
 
     tools::Long nAvailHeight = rAllocation.Height() - 2 * m_nBorderWidth;
     tools::Long nAvailWidth = rAllocation.Width() - 2 * m_nBorderWidth;
+
     // vert. ScrollBar
+    bool bShowVScroll;
     if (GetStyle() & WB_AUTOVSCROLL)
-    {
-        m_pVScroll->Show(nAvailHeight < aChildReq.Height());
-    }
-    else if (m_pVScroll->IsVisible() != bool(GetStyle() & WB_VSCROLL))
-        m_pVScroll->Show((GetStyle() & WB_VSCROLL) != 0);
+        bShowVScroll = nAvailHeight < aChildReq.Height();
+    else
+        bShowVScroll = (GetStyle() & WB_VSCROLL) != 0;
 
-    if (m_pVScroll->IsVisible())
+    if (bShowVScroll)
         nAvailWidth -= getLayoutRequisition(*m_pVScroll).Width();
 
     // horz. ScrollBar
+    bool bShowHScroll;
     if (GetStyle() & WB_AUTOHSCROLL)
     {
-        bool bShowHScroll = nAvailWidth < aChildReq.Width();
-        m_pHScroll->Show(bShowHScroll);
+        bShowHScroll = nAvailWidth < aChildReq.Width();
 
         if (bShowHScroll)
             nAvailHeight -= getLayoutRequisition(*m_pHScroll).Height();
 
         if (GetStyle() & WB_AUTOVSCROLL)
-            m_pVScroll->Show(nAvailHeight < aChildReq.Height());
+            bShowVScroll = nAvailHeight < aChildReq.Height();
     }
-    else if (m_pHScroll->IsVisible() != bool(GetStyle() & WB_HSCROLL))
-        m_pHScroll->Show((GetStyle() & WB_HSCROLL) != 0);
+    else
+        bShowHScroll = (GetStyle() & WB_HSCROLL) != 0;
+
+    if (m_pHScroll->IsVisible() != bShowHScroll)
+        m_pHScroll->Show(bShowHScroll);
+    if (m_pVScroll->IsVisible() != bShowVScroll)
+        m_pVScroll->Show(bShowVScroll);
 
     Size aInnerSize(rAllocation);
     aInnerSize.AdjustWidth(-2 * m_nBorderWidth);
commit 1406fb1d7d04bb217259b807dd6069aac605f84e
Author:     Rizal Muttaqin <riz_17_oke at yahoo.co.id>
AuthorDate: Thu Apr 1 11:01:26 2021 +0700
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Tue Apr 6 10:17:38 2021 +0200

    KJ: Improve small Select Outline Format icons
    
    Change-Id: I18fd7e4656b12790ad8896cbe56f3896f4a178f4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113435
    Tested-by: Jenkins
    Reviewed-by: Rizal Muttaqin <rizmut at libreoffice.org>
    (cherry picked from commit bc4f06a80a234ae4a90864a075df1e94ced3045a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113368
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/icon-themes/karasa_jaga/cmd/ar/sc_setoutline.png b/icon-themes/karasa_jaga/cmd/ar/sc_setoutline.png
index 349641b7f42e..f09d3fefde92 100644
Binary files a/icon-themes/karasa_jaga/cmd/ar/sc_setoutline.png and b/icon-themes/karasa_jaga/cmd/ar/sc_setoutline.png differ
diff --git a/icon-themes/karasa_jaga/cmd/sc_setoutline.png b/icon-themes/karasa_jaga/cmd/sc_setoutline.png
index d4b25a4ddc60..9db7ea8d374f 100644
Binary files a/icon-themes/karasa_jaga/cmd/sc_setoutline.png and b/icon-themes/karasa_jaga/cmd/sc_setoutline.png differ
diff --git a/icon-themes/karasa_jaga_svg/cmd/ar/sc_setoutline.svg b/icon-themes/karasa_jaga_svg/cmd/ar/sc_setoutline.svg
index a0f806ad7281..d1c98730322f 100644
--- a/icon-themes/karasa_jaga_svg/cmd/ar/sc_setoutline.svg
+++ b/icon-themes/karasa_jaga_svg/cmd/ar/sc_setoutline.svg
@@ -1 +1 @@
-<svg height="16" viewBox="0 0 4.2333333 4.2333335" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(2.9758551 0 0 2.9758549 -2309.4946 -578.87404)" gradientUnits="userSpaceOnUse" x1="778.88196" x2="778.88196" xlink:href="#b" y1="289.57986" y2="284.53162"/><linearGradient id="b"><stop offset="0" stop-color="#06f"/><stop offset="1" stop-color="#80b3ff"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="7.093015" x2="7.093015" xlink:href="#b" y1="-274.81851" y2="-268.05536"/><g transform="matrix(.125 0 0 .125 0 -32.89167)"><path d="m2.1166677 267.36665 16.9333343-.00005v2.1167l-16.9333343.00005z" fill="#404040" fill-opacity=".839216"/><path d="m6.3500017 271.59993h12.6999993v2.11669h-12.6999993z" fill="#404040" fill-opacity=".839216"/><path d="m3.6715918 284.12396v-1.32424h2.2112989v-6.08899l-2.1416018 1.33691v-1.40028l2.2366433-1.45096h1.6854026v7.60332h2.0465603v1.32424z"
  stroke="url(#a)" stroke-linejoin="round" stroke-width="4.360674" transform="matrix(1.0236449 0 0 .97690126 20.168776 .000007)"/><path d="m3.960415 277.56085v-1.29365h2.1602208v-5.94835l-2.0921336 1.30604v-1.36794l2.1849798-1.41745h1.646472v7.4277h1.9992875v1.29365z" fill="#bfd9ff" stroke-width="2.180337" transform="translate(20.04701 .000007)"/><g transform="matrix(-.95875896 0 0 .95875896 27.52372 26.794976)"><path d="m8.1026671-272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47095 1.470957 1.470957 0 0 1 -1.4709571-1.47095 1.470957 1.470957 0 0 1 1.4709571-1.47096 1.470957 1.470957 0 0 1 1.470957 1.47096z" fill="none" stroke="url(#c)" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.88383" transform="scale(1 -1)"/><path d="m8.1026671 272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47096 1.470957 1.470957 0 0 1 -1.4709571-1.47096 1.470957 1.470957 0 0 1 1.4709571-1.47095 1.470957 1.470957 0 0 1 1.470957 1.47095z" fill="#bfd9ff"/></g><path d="m2.1166691 284.30005 10.58333
 09-.00001v2.1167l-10.5833309.00001z" fill="#404040" fill-opacity=".839216"/><path d="m6.3500021 288.53334 6.3499959.00004v2.11669l-6.3499959-.00004z" fill="#404040" fill-opacity=".839216"/><g fill="#fff" fill-opacity=".392157"><path d="m2.1166667 265.25003 16.9333343-.00005v2.1167l-16.9333343.00005z"/><path d="m6.3500007 269.48331h12.6999993v2.1167h-12.6999993z"/><path d="m2.1166681 282.18343 10.5833309-.00001v2.1167l-10.5833309.00001z"/><path d="m6.3500011 286.41672 6.3499959.00004v2.11669l-6.3499959-.00004z"/></g></g></svg>
\ No newline at end of file
+<svg height="16" viewBox="0 0 4.2333333 4.2333335" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="6.7862" x2="6.7862" xlink:href="#b" y1="275.1897" y2="266.72305"/><linearGradient id="b"><stop offset="0" stop-color="#06f"/><stop offset="1" stop-color="#80b3ff"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="7.093015" x2="7.093015" xlink:href="#b" y1="-274.81851" y2="-268.05536"/><g transform="matrix(-.125 0 0 .125 4.233333 -32.891675)"><path d="m-31.75 267.3667 16.933334-.00005v2.1167l-16.933334.00005z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><path d="m-27.516666 271.59998h12.699999v2.11669h-12.699999z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><g transform="matrix(.95875896 0 0 .95875896 6.342947 26.794969)"><path d="m8.1026671-272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47095 1.470957 1.470957 0 0 1 -1.4709571
 -1.47095 1.470957 1.470957 0 0 1 1.4709571-1.47096 1.470957 1.470957 0 0 1 1.470957 1.47096z" fill="none" stroke="url(#c)" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.88383" transform="scale(1 -1)"/><path d="m8.1026671 272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47096 1.470957 1.470957 0 0 1 -1.4709571-1.47096 1.470957 1.470957 0 0 1 1.4709571-1.47095 1.470957 1.470957 0 0 1 1.470957 1.47095z" fill="#bfd9ff"/></g><path d="m31.749998 284.30004-10.583331-.00001v2.1167l10.583331.00001z" fill="#404040" fill-opacity=".839216"/><path d="m27.516665 288.53333-6.349996.00004v2.11669l6.349996-.00004z" fill="#404040" fill-opacity=".839216"/><g fill="#fff" fill-opacity=".392157"><path d="m31.750001 265.25008-16.933334-.00005v2.1167l16.933334.00005z"/><path d="m27.516667 269.48336h-12.699999v2.1167h12.699999z"/><path d="m31.749999 282.18342-10.583331-.00001v2.1167l10.583331.00001z"/><path d="m27.516666 286.41671-6.349996.00004v2.11669l6.349996-.00004z"/></g><g stroke-width="
 2.180337" transform="matrix(-1 0 0 1 12.077738 -1.473016)"><path d="m6.2128906 266.72266a2.1170101 2.1170101 0 0 0 -1.0273437.26562l-2.5546875 1.41797a2.1170101 2.1170101 0 0 0 -1.0898438 1.86133l.00977 1.92773a2.1170101 2.1170101 0 0 0 .6015626 1.46289 2.1170101 2.1170101 0 0 0 -.6582032 1.53125v2.11719a2.1170101 2.1170101 0 0 0 2.1171875 2.11719h6.3496094a2.1170101 2.1170101 0 0 0 2.1171871-2.11719v-2.11719a2.1170101 2.1170101 0 0 0 -2.1171871-2.11718h.029297l-.013672-4.24024a2.1170101 2.1170101 0 0 0 -2.1171919-2.10937zm-.8847656 10.54101a2.1170101 2.1170101 0 0 0 .019531.004c-.0026-.00034-.019531-.002-.019531-.002s-.0000001-.002 0-.002z" fill="url(#a)"/><path d="m3.6112001 277.30638v-2.11666c.5847778 0 2.1910135.00078 2.125264-.00021l-.0086-4.23313-2.0600039 1.22994-.010292-1.92916 2.5559108-1.41766h1.646472l.021716 6.35001 2.0795306.0002v2.11667z" fill="#bfd9ff"/></g></g></svg>
\ No newline at end of file
diff --git a/icon-themes/karasa_jaga_svg/cmd/sc_setoutline.svg b/icon-themes/karasa_jaga_svg/cmd/sc_setoutline.svg
index 6483a70fa6a1..c152ba8f9af8 100644
--- a/icon-themes/karasa_jaga_svg/cmd/sc_setoutline.svg
+++ b/icon-themes/karasa_jaga_svg/cmd/sc_setoutline.svg
@@ -1 +1 @@
-<svg height="16" viewBox="0 0 4.2333333 4.2333335" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#06f"/><stop offset="1" stop-color="#80b3ff"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="7.093015" x2="7.093015" xlink:href="#a" y1="-274.81851" y2="-268.05536"/><linearGradient id="c" gradientTransform="matrix(2.9758551 0 0 2.9758549 -2309.4946 -578.87404)" gradientUnits="userSpaceOnUse" x1="778.88196" x2="778.88196" xlink:href="#a" y1="289.57986" y2="284.53162"/><g transform="matrix(.125 0 0 .125 0 -32.89167)"><path d="m-31.75 267.3667 16.933334-.00005v2.1167l-16.933334.00005z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><path d="m-27.516666 271.59998h12.699999v2.11669h-12.699999z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><path d="m3.6715918 284.12396v-1.32424h2.2112989v-6.08899l-2.1416018 1.33691v-1.40028l2.2366433-1.45
 096h1.6854026v7.60332h2.0465603v1.32424z" stroke="url(#c)" stroke-linejoin="round" stroke-width="4.360674" transform="scale(1.0236449 .97690126)"/><path d="m3.960415 277.56085v-1.29365h2.1602208v-5.94835l-2.0921336 1.30604v-1.36794l2.1849798-1.41745h1.646472v7.4277h1.9992875v1.29365z" fill="#bfd9ff" stroke-width="2.180337"/><g transform="matrix(.95875896 0 0 .95875896 6.342947 26.794969)"><path d="m8.1026671-272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47095 1.470957 1.470957 0 0 1 -1.4709571-1.47095 1.470957 1.470957 0 0 1 1.4709571-1.47096 1.470957 1.470957 0 0 1 1.470957 1.47096z" fill="none" stroke="url(#b)" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.88383" transform="scale(1 -1)"/><path d="m8.1026671 272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47096 1.470957 1.470957 0 0 1 -1.4709571-1.47096 1.470957 1.470957 0 0 1 1.4709571-1.47095 1.470957 1.470957 0 0 1 1.470957 1.47095z" fill="#bfd9ff"/></g><path d="m31.749998 284.30004-10.583331-.00001v2.1167l10.5833
 31.00001z" fill="#404040" fill-opacity=".839216"/><path d="m27.516665 288.53333-6.349996.00004v2.11669l6.349996-.00004z" fill="#404040" fill-opacity=".839216"/><g fill="#fff" fill-opacity=".392157"><path d="m31.750001 265.25008-16.933334-.00005v2.1167l16.933334.00005z"/><path d="m27.516667 269.48336h-12.699999v2.1167h12.699999z"/><path d="m31.749999 282.18342-10.583331-.00001v2.1167l10.583331.00001z"/><path d="m27.516666 286.41671-6.349996.00004v2.11669l6.349996-.00004z"/></g></g></svg>
\ No newline at end of file
+<svg height="16" viewBox="0 0 4.2333333 4.2333335" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="6.7862" x2="6.7862" xlink:href="#b" y1="275.1897" y2="266.72305"/><linearGradient id="b"><stop offset="0" stop-color="#06f"/><stop offset="1" stop-color="#80b3ff"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="7.093015" x2="7.093015" xlink:href="#b" y1="-274.81851" y2="-268.05536"/><g transform="matrix(.125 0 0 .125 0 -32.89167)"><path d="m-31.75 267.3667 16.933334-.00005v2.1167l-16.933334.00005z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><path d="m-27.516666 271.59998h12.699999v2.11669h-12.699999z" fill="#404040" fill-opacity=".839216" transform="scale(-1 1)"/><g transform="matrix(.95875896 0 0 .95875896 6.342947 26.794969)"><path d="m8.1026671-272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47095 1.470957 1.470957 0 0 1 -1.4709571-1.47095 
 1.470957 1.470957 0 0 1 1.4709571-1.47096 1.470957 1.470957 0 0 1 1.470957 1.47096z" fill="none" stroke="url(#c)" stroke-linecap="round" stroke-linejoin="round" stroke-width="5.88383" transform="scale(1 -1)"/><path d="m8.1026671 272.99435a1.470957 1.470957 0 0 1 -1.470957 1.47096 1.470957 1.470957 0 0 1 -1.4709571-1.47096 1.470957 1.470957 0 0 1 1.4709571-1.47095 1.470957 1.470957 0 0 1 1.470957 1.47095z" fill="#bfd9ff"/></g><path d="m31.749998 284.30004-10.583331-.00001v2.1167l10.583331.00001z" fill="#404040" fill-opacity=".839216"/><path d="m27.516665 288.53333-6.349996.00004v2.11669l6.349996-.00004z" fill="#404040" fill-opacity=".839216"/><g fill="#fff" fill-opacity=".392157"><path d="m31.750001 265.25008-16.933334-.00005v2.1167l16.933334.00005z"/><path d="m27.516667 269.48336h-12.699999v2.1167h12.699999z"/><path d="m31.749999 282.18342-10.583331-.00001v2.1167l10.583331.00001z"/><path d="m27.516666 286.41671-6.349996.00004v2.11669l6.349996-.00004z"/></g><g stroke-width="2.180337"
  transform="translate(-1.494536 -1.473016)"><path d="m6.2128906 266.72266a2.1170101 2.1170101 0 0 0 -1.0273437.26562l-2.5546875 1.41797a2.1170101 2.1170101 0 0 0 -1.0898438 1.86133l.00977 1.92773a2.1170101 2.1170101 0 0 0 .6015626 1.46289 2.1170101 2.1170101 0 0 0 -.6582032 1.53125v2.11719a2.1170101 2.1170101 0 0 0 2.1171875 2.11719h6.3496094a2.1170101 2.1170101 0 0 0 2.1171871-2.11719v-2.11719a2.1170101 2.1170101 0 0 0 -2.1171871-2.11718h.029297l-.013672-4.24024a2.1170101 2.1170101 0 0 0 -2.1171919-2.10937zm-.8847656 10.54101a2.1170101 2.1170101 0 0 0 .019531.004c-.0026-.00034-.019531-.002-.019531-.002s-.0000001-.002 0-.002z" fill="url(#a)"/><path d="m3.6112001 277.30638v-2.11666c.5847778 0 2.1910135.00078 2.125264-.00021l-.0086-4.23313-2.0600039 1.22994-.010292-1.92916 2.5559108-1.41766h1.646472l.021716 6.35001 2.0795306.0002v2.11667z" fill="#bfd9ff"/></g></g></svg>
\ No newline at end of file


More information about the Libreoffice-commits mailing list