[ooo-build-commit] .: patches/dev300

Kohei Yoshida kohei at kemper.freedesktop.org
Fri Feb 12 13:44:13 PST 2010


 patches/dev300/apply                       |    3 ++
 patches/dev300/calc-note-position-fix.diff |   31 +++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

New commits:
commit 04f590e3c5ba31dfdda1869c071d9d13c4ac7f98
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Fri Feb 12 16:40:22 2010 -0500

    Fix incorrect cell positioning during row insertion.
    
    * patches/dev300/apply:
    * patches/dev300/calc-note-position-fix.diff: fix incorrect cell
      positioning during row insertion, which caused some cell notes
      to disappear after save & re-load. (n#578588)

diff --git a/patches/dev300/apply b/patches/dev300/apply
index eaa3c03..3368d49 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -3537,6 +3537,9 @@ calc-subtotal-function-update.diff, n#578802, kohei
 # Reduce cache table size & improve lookup performance on external references.
 calc-perf-extref-shrink-range.diff, i#109168, kohei
 
+# Fix incorrect positioning of cell notes during row insertion.
+calc-note-position-fix.diff, n#579454, kohei
+
 [ NovellEvaluation ]
 # enable the Subscription menu
 novell-subscription-enable-in-menu.diff
diff --git a/patches/dev300/calc-note-position-fix.diff b/patches/dev300/calc-note-position-fix.diff
new file mode 100644
index 0000000..fdbc911
--- /dev/null
+++ b/patches/dev300/calc-note-position-fix.diff
@@ -0,0 +1,31 @@
+diff --git sc/source/core/data/drwlayer.cxx sc/source/core/data/drwlayer.cxx
+index 03c48f5..a0b08fd 100644
+--- sc/source/core/data/drwlayer.cxx
++++ sc/source/core/data/drwlayer.cxx
+@@ -547,26 +547,6 @@ void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool b
+     if( !pDoc )
+         return;
+ 
+-    /*  TODO CleanUp: Updating note position works just by chance currently...
+-        When inserting rows/columns, this function is called after the
+-        insertion, and the note is located at the new position contained in the
+-        passed ScDrawObjData already. But when deleting rows/columns, this
+-        function is called *before* the deletion, so the note is still at the
+-        old cell position, and ScDocument::GetNote() will fail to get the note
+-        or will get another note. But after the rows/columns are deleted, a
+-        call to ScDrawLayer::SetPageSize() will call this function again, and
+-        now the note is at the expected position in the document. */
+-    if( rData.mbNote )
+-    {
+-        DBG_ASSERT( rData.maStart.IsValid(), "ScDrawLayer::RecalcPos - invalid position for cell note" );
+-        /*  When inside an undo action, there may be pending note captions
+-            where cell note is already deleted. The caption will be deleted
+-            later with drawing undo. */
+-        if( ScPostIt* pNote = pDoc->GetNote( rData.maStart ) )
+-            pNote->UpdateCaptionPos( rData.maStart );
+-        return;
+-    }
+-
+     bool bValid1 = rData.maStart.IsValid();
+     SCCOL nCol1 = rData.maStart.Col();
+     SCROW nRow1 = rData.maStart.Row();


More information about the ooo-build-commit mailing list