sc/source/ui/unoobj/cellvaluebinding.cxx    |   23 +++++++++++++++++++++++
 svx/source/sdr/overlay/overlayselection.cxx |   10 ++++++++++
 2 files changed, 33 insertions(+)

New commits:
commit 1f86fdd4b5428a8c7b253051cca93429dc71f894
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Apr 23 16:10:48 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Apr 23 18:50:35 2024 +0200

    tdf#160787 Calc active cell cursor has small transparent corners
    
    clearly I don't understand something about B2DPolyPolygon, revert part
    of
    
        commit 7b1405689d4246e0e37e8759f03e1962af964cec
        Author: Noel Grandin <noelgran...@gmail.com>
        Date:   Fri Apr 19 22:56:04 2024 +0200
    reduce the number of drawing primitives we create in
    OverlaySelection
    
    Change-Id: If8f07d021543e2686a3acfc6a0d38b2ebc962de4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166543
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/svx/source/sdr/overlay/overlayselection.cxx 
b/svx/source/sdr/overlay/overlayselection.cxx
index d4a7b45beb8f..a5598c1d2125 100644
--- a/svx/source/sdr/overlay/overlayselection.cxx
+++ b/svx/source/sdr/overlay/overlayselection.cxx
@@ -214,6 +214,16 @@ namespace sdr::overlay
                 aRGBColor = basegfx::BColor(1.0, 1.0, 1.0);
             }
 
+            aRetval.resize(nCount);
+            for(sal_uInt32 a(0);a < nCount; a++)
+            {
+                basegfx::B2DPolygon 
aPolygon(basegfx::utils::createPolygonFromRect(maRanges[a]));
+                aRetval[a] =
+                    new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(
+                        basegfx::B2DPolyPolygon(std::move(aPolygon)),
+                        aRGBColor);
+            }
+
             basegfx::B2DPolyPolygon aPolyPolygon;
             aPolyPolygon.reserve(nCount);
             for(sal_uInt32 a(0);a < nCount; a++)
commit 979164938007e4774b7718abcb20fded9a00839f
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Apr 23 15:31:37 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Apr 23 18:50:20 2024 +0200

    tdf#160768 Changing value in a text box control with a link cell set up, 
Crash
    
    regression from
        commit 7510cca63690ea97eb02a43f698fc183c3d0434a
        Author: Noel Grandin <noel.gran...@collabora.co.uk>
        Date:   Tue Mar 26 15:56:02 2024 +0200
        convert OCellValueBinding to comphelper::WeakComponentImplHelper
    
    Change-Id: I36ec4cca7a48992b29d6c2ff5c87fb0fed1c8c3f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166540
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sc/source/ui/unoobj/cellvaluebinding.cxx 
b/sc/source/ui/unoobj/cellvaluebinding.cxx
index d1fa61175557..c728f503a856 100644
--- a/sc/source/ui/unoobj/cellvaluebinding.cxx
+++ b/sc/source/ui/unoobj/cellvaluebinding.cxx
@@ -286,7 +286,12 @@ namespace calc
                 OUString sText;
                 aValue >>= sText;
                 if ( m_xCellText.is() )
+                {
+                    // might call back into us via modified(EventObject&)
+                    aGuard.unlock();
                     m_xCellText->setString( sText );
+                    aGuard.lock();
+                }
             }
             break;
 
@@ -302,7 +307,12 @@ namespace calc
                 double nCellValue = bValue ? 1.0 : 0.0;
 
                 if ( m_xCell.is() )
+                {
+                    // might call back into us via modified(EventObject&)
+                    aGuard.unlock();
                     m_xCell->setValue( nCellValue );
+                    aGuard.lock();
+                }
 
                 setBooleanFormat();
             }
@@ -315,7 +325,12 @@ namespace calc
                 double nValue = 0;
                 aValue >>= nValue;
                 if ( m_xCell.is() )
+                {
+                    // might call back into us via modified(EventObject&)
+                    aGuard.unlock();
                     m_xCell->setValue( nValue );
+                    aGuard.lock();
+                }
             }
             break;
 
@@ -327,7 +342,12 @@ namespace calc
                 aValue >>= nValue;      // list index from control layer 
(0-based)
                 ++nValue;               // the list position value in the cell 
is 1-based
                 if ( m_xCell.is() )
+                {
+                    // might call back into us via modified(EventObject&)
+                    aGuard.unlock();
                     m_xCell->setValue( nValue );
+                    aGuard.lock();
+                }
             }
             break;
 
@@ -341,7 +361,10 @@ namespace calc
                 {
                     Sequence<Any> aInner(1);                            // one 
empty element
                     Sequence< Sequence<Any> > aOuter( &aInner, 1 );     // one 
row
+                    // might call back into us via modified(EventObject&)
+                    aGuard.unlock();
                     xData->setDataArray( aOuter );
+                    aGuard.lock();
                 }
             }
             break;

Reply via email to