chart2/source/view/main/ChartView.cxx |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit 081f1e5e393dee9a4708e603c81173aa82aa6fe7
Author:     Caolán McNamara <[email protected]>
AuthorDate: Thu Feb 26 21:00:28 2026 +0000
Commit:     Miklos Vajna <[email protected]>
CommitDate: Fri Feb 27 08:37:16 2026 +0100

    opt ChartView::impl_updateView out of BroadcastObjectChange
    
    since:
    
    commit 3f87466d6db4ba694a8ba9f74dcac1b142a15f30
    Date:   Tue Jan 27 13:07:22 2026 +0500
    
        tdf#170386: Delay broadcasting object changes, not drop it
    
    those get queued and broadcast after unlocking controllers. Prior
    to that they were silently dropped.
    
    Kit clients, at least testing infra, depend on not getting
    EMPTY between INPLACE and INPLACE EXIT on inserting a chart
    
    Where the EMPTY comes from the ImpComeBackHdl, ModelHasChanged, 
AdjustMarkHdl,
    SetMarkHandles(marks=0), SetMarkHandlesForLOKit, sends graphicselection: 
EMPTY
    
    and ImpComeBackHdl is trigged from the BroadcastObjectChange() which was
    deferred after this change, and dropped before.
    
    Change-Id: Ib48f0c1e040d84e9af9c50a6fc1c9ca737ab67c5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200526
    Reviewed-by: Miklos Vajna <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/chart2/source/view/main/ChartView.cxx 
b/chart2/source/view/main/ChartView.cxx
index 43eb0c7d46f7..a6cdfb06c99b 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -1487,6 +1487,10 @@ void ChartView::impl_updateView( bool bCheckLockedCtrler 
)
         {
             SolarMutexGuard aSolarGuard;
             m_pDrawModelWrapper->lockControllers();
+            // Don't send deferred ObjectChange notifications to the parent
+            // document's SdrPaintView, that triggers unwanted
+            // graphicselection: EMPTY callbacks via ImpComeBackHdl.
+            
m_pDrawModelWrapper->getSdrModel().setIgnoreDeferredObjectChanges(true);
         }
 
         //create chart view
@@ -1521,6 +1525,7 @@ void ChartView::impl_updateView( bool bCheckLockedCtrler )
 
     {
         SolarMutexGuard aSolarGuard;
+        
m_pDrawModelWrapper->getSdrModel().setIgnoreDeferredObjectChanges(false);
         m_pDrawModelWrapper->unlockControllers();
     }
 

Reply via email to