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

Kohei Yoshida kohei at kemper.freedesktop.org
Tue Apr 20 15:42:11 PDT 2010


 patches/dev300/calc-perf-filtering-with-notes.diff |   61 -
 patches/dev300/calc-perf-table-hidden-flags.diff   |  755 ++++++++++++---------
 2 files changed, 453 insertions(+), 363 deletions(-)

New commits:
commit 5af8247776a3855ee74bf6ae8245b4b94d24f04a
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Tue Apr 20 17:23:42 2010 -0400

    Adopted to ooo320-m15, becuase they changed stuff around in the baseline.
    
    * patches/dev300/calc-perf-filtering-with-notes.diff:
    * patches/dev300/calc-perf-table-hidden-flags.diff:

diff --git a/patches/dev300/calc-perf-filtering-with-notes.diff b/patches/dev300/calc-perf-filtering-with-notes.diff
index 3f7f20c..7730f38 100644
--- a/patches/dev300/calc-perf-filtering-with-notes.diff
+++ b/patches/dev300/calc-perf-filtering-with-notes.diff
@@ -1,62 +1,43 @@
-diff --git sc/inc/table.hxx sc/inc/table.hxx
-index c6c41f1..c7836c5 100644
---- sc/inc/table.hxx
-+++ sc/inc/table.hxx
-@@ -638,7 +638,7 @@ public:
-     void		DBShowRow(SCROW nRow, BOOL bShow);
- 
-     void		ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow);
--    void		DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow);
-+    void		DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow, bool bDrawPageSize);
- 
-     void		SetColFlags( SCCOL nCol, BYTE nNewFlags );
-     void		SetRowFlags( SCROW nRow, BYTE nNewFlags );
 diff --git sc/source/core/data/table2.cxx sc/source/core/data/table2.cxx
-index 319a7e5..f0a0815 100644
+index 3c35beb..f3aaf40 100644
 --- sc/source/core/data/table2.cxx
 +++ sc/source/core/data/table2.cxx
-@@ -2540,7 +2540,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
- }
- 
- 
--void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
-+void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow, bool bDrawPageSize)
+@@ -2380,8 +2380,6 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
+ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
  {
      SCROW nStartRow = nRow1;
-     IncRecalcLevel();
-@@ -2585,7 +2585,7 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+-    IncRecalcLevel();
+-    InitializeNoteCaptions();
+     while (nStartRow <= nRow2)
+     {
+         BYTE nOldFlag = pRowFlags->GetValue(nStartRow) & CR_HIDDEN;
+@@ -2424,8 +2422,6 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+     //	to be done here.
      if (pOutlineTable)
          UpdateOutlineRow( nRow1, nRow2, bShow );
- 
+-
 -    DecRecalcLevel();
-+    if (!--nRecalcLvl && bDrawPageSize) SetDrawPageSize(true, true); 
  }
  
  
 diff --git sc/source/core/data/table3.cxx sc/source/core/data/table3.cxx
-index 52d7d32..7c9af91 100644
+index bb7786b..28727d9 100644
 --- sc/source/core/data/table3.cxx
 +++ sc/source/core/data/table3.cxx
-@@ -1668,7 +1668,7 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, BOOL bKeepSub)
-             else
-             {
-                 if (bStarted)
--                    DBShowRows(nOldStart,nOldEnd, bOldResult);
-+                    DBShowRows(nOldStart,nOldEnd, bOldResult, false);
-                 nOldStart = nOldEnd = j;
-                 bOldResult = bResult;
-             }
-@@ -1687,10 +1687,12 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, BOOL bKeepSub)
+@@ -1623,6 +1623,7 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, BOOL bKeepSub)
+                             aParam.nDestCol, aParam.nDestRow, aParam.nDestTab );
      }
  
-     if (aParam.bInplace && bStarted)
--        DBShowRows(nOldStart,nOldEnd, bOldResult);
-+        DBShowRows(nOldStart,nOldEnd, bOldResult, false);
++    InitializeNoteCaptions();
+     for (SCROW j=aParam.nRow1 + nHeader; j<=nEndRow; j++)
+     {
+         BOOL bResult;									// Filterergebnis
+@@ -1700,7 +1701,7 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, BOOL bKeepSub)
+         DBShowRows(nOldStart,nOldEnd, bOldResult);
  
      delete[] pSpecial;
- 
+-
 +    SetDrawPageSize();
-+
      return nCount;
  }
  
diff --git a/patches/dev300/calc-perf-table-hidden-flags.diff b/patches/dev300/calc-perf-table-hidden-flags.diff
index 36aba43..a3c9cc5 100644
--- a/patches/dev300/calc-perf-table-hidden-flags.diff
+++ b/patches/dev300/calc-perf-table-hidden-flags.diff
@@ -1,6 +1,8 @@
---- sc/inc/column.hxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/inc/column.hxx	2010-03-03 16:59:19.000000000 +0100
-@@ -214,10 +214,10 @@ public:
+diff --git sc/inc/column.hxx sc/inc/column.hxx
+index 987f56e..38b3cb5 100644
+--- sc/inc/column.hxx
++++ sc/inc/column.hxx
+@@ -211,10 +211,10 @@ public:
                  //	UpdateSelectionFunction: Mehrfachselektion
      void		UpdateSelectionFunction( const ScMarkData& rMark,
                                      ScFunctionData& rData,
@@ -13,9 +15,11 @@
                                      SCROW nStartRow, SCROW nEndRow );
  
      void		CopyToColumn(SCROW nRow1, SCROW nRow2, USHORT nFlags, BOOL bMarked,
---- sc/inc/document.hxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/inc/document.hxx	2010-03-03 16:59:19.000000000 +0100
-@@ -422,16 +422,11 @@ private:
+diff --git sc/inc/document.hxx sc/inc/document.hxx
+index 93bd94f..b78ff33 100644
+--- sc/inc/document.hxx
++++ sc/inc/document.hxx
+@@ -419,16 +419,11 @@ private:
  
      sal_Int16           mnNamedRangesLockCount;
  
@@ -32,7 +36,7 @@
  
  public:
      SC_DLLPUBLIC 				ScDocument( ScDocumentMode eMode = SCDOCMODE_DOCUMENT,
-@@ -1253,7 +1248,6 @@ public:
+@@ -1251,7 +1246,6 @@ public:
                          SCTAB nTab, double fScale ) const;
      SC_DLLPUBLIC inline USHORT	FastGetRowHeight( SCROW nRow, SCTAB nTab ) const;
      inline SCROW	FastGetRowForHeight( SCTAB nTab, ULONG nHeight ) const;
@@ -40,7 +44,7 @@
                      /** No check for flags whether row is hidden, height value
                          is returned unconditionally. */
      inline USHORT   FastGetOriginalRowHeight( SCROW nRow, SCTAB nTab ) const;
-@@ -1305,6 +1299,26 @@ public:
+@@ -1303,6 +1297,26 @@ public:
      ::com::sun::star::uno::Sequence<
          ::com::sun::star::sheet::TablePageBreakData> GetRowBreakData(SCTAB nTab) const;
  
@@ -67,7 +71,7 @@
      /** 
       * Write all column row flags to table's flag data, because not all column 
       * row attributes are stored in the flag data members.  This is necessary 
-@@ -1333,8 +1347,6 @@ public:
+@@ -1331,8 +1345,6 @@ public:
      BOOL			GetColDefault( SCTAB nTab, SCCOL nCol, SCROW nLastRow, SCROW& nDefault);
      BOOL			GetRowDefault( SCTAB nTab, SCROW nRow, SCCOL nLastCol, SCCOL& nDefault);
  
@@ -76,7 +80,7 @@
      BOOL			UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, BOOL bShow );
      BOOL			UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, BOOL bShow );
  
-@@ -1813,58 +1825,24 @@ inline void ScDocument::SetSortParam( Sc
+@@ -1811,58 +1823,24 @@ inline void ScDocument::SetSortParam( ScSortParam& rParam, SCTAB nTab )
  inline ULONG ScDocument::FastGetScaledRowHeight( SCROW nStartRow, SCROW nEndRow,
          SCTAB nTab, double fScale ) const
  {
@@ -139,9 +143,11 @@
   
  #endif
  
---- sc/inc/olinetab.hxx.old	2009-10-08 16:17:08.000000000 +0200
-+++ sc/inc/olinetab.hxx	2010-03-03 16:59:19.000000000 +0100
-@@ -39,6 +39,7 @@
+diff --git sc/inc/olinetab.hxx sc/inc/olinetab.hxx
+index 584d995..3b256ae 100644
+--- sc/inc/olinetab.hxx
++++ sc/inc/olinetab.hxx
+@@ -36,6 +36,7 @@
  #define SC_OL_MAXDEPTH		7
  
  class SvStream;
@@ -149,7 +155,7 @@
  
  
  class ScOutlineEntry : public ScDataObject
-@@ -126,9 +127,7 @@ public:
+@@ -123,9 +124,7 @@ public:
      void					InsertSpace( SCCOLROW nStartPos, SCSIZE nSize );
      BOOL					DeleteSpace( SCCOLROW nStartPos, SCSIZE nSize );
  
@@ -160,9 +166,11 @@
  
      void					RemoveAll();
  };
---- sc/inc/table.hxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/inc/table.hxx	2010-03-03 16:59:19.000000000 +0100
-@@ -43,6 +43,7 @@
+diff --git sc/inc/table.hxx sc/inc/table.hxx
+index 3752df2..f5b2c6a 100644
+--- sc/inc/table.hxx
++++ sc/inc/table.hxx
+@@ -40,6 +40,7 @@
  
  #include <memory>
  #include <set>
@@ -170,7 +178,7 @@
  
  namespace utl {
      class SearchParam;
-@@ -84,6 +85,8 @@ struct ScFunctionData;
+@@ -81,6 +82,8 @@ struct ScFunctionData;
  struct ScLineFlags;
  class CollatorWrapper;
  struct ScSetStringParam;
@@ -179,7 +187,7 @@
  
  class ScTable
  {
-@@ -125,6 +128,10 @@ private:
+@@ -122,6 +125,10 @@ private:
  
      BYTE*			pColFlags;
      ScBitMaskCompressedArray< SCROW, BYTE>*     pRowFlags;
@@ -190,7 +198,7 @@
  
      ::std::set<SCROW>                      maRowPageBreaks;
      ::std::set<SCROW>                      maRowManualBreaks;
-@@ -475,7 +482,7 @@ public:
+@@ -471,7 +478,7 @@ public:
                                  SCCOL& rCol, SCROW& rRow, ScMarkData& rMark,
                                  String& rUndoStr, ScDocument* pUndoDoc);
  
@@ -199,7 +207,7 @@
  
      void		GetBorderLines( SCCOL nCol, SCROW nRow,
                                  const SvxBorderLine** ppLeft, const SvxBorderLine** ppTop,
-@@ -597,19 +604,29 @@ public:
+@@ -593,19 +600,29 @@ public:
                          // nPPT fuer Test auf Veraenderung
      void		SetManualHeight( SCROW nStartRow, SCROW nEndRow, BOOL bManual );
  
@@ -237,7 +245,7 @@
  
      void		ShowCol(SCCOL nCol, BOOL bShow);
      void		ShowRow(SCROW nRow, BOOL bShow);
-@@ -630,8 +647,6 @@ public:
+@@ -626,8 +643,6 @@ public:
                  /// @return  the index of the last changed row (flags and row height, auto pagebreak is ignored).
      SCROW      GetLastChangedRow() const;
  
@@ -246,7 +254,7 @@
      BYTE		GetColFlags( SCCOL nCol ) const;
      BYTE		GetRowFlags( SCROW nRow ) const;
  
-@@ -660,6 +675,34 @@ public:
+@@ -656,6 +671,34 @@ public:
      void        SetColBreak(SCCOL nCol, bool bPage, bool bManual);
      ::com::sun::star::uno::Sequence<
          ::com::sun::star::sheet::TablePageBreakData> GetRowBreakData() const;
@@ -281,7 +289,7 @@
      void        SyncColRowFlags();
  
      void		StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
-@@ -790,7 +833,7 @@ private:
+@@ -786,7 +829,7 @@ private:
  
      SCSIZE		FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
                              SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
@@ -290,9 +298,11 @@
  
      // idle calculation of OutputDevice text width for cell
      // also invalidates script type, broadcasts for "calc as shown"
---- sc/source/core/data/column2.cxx.old	2010-03-03 16:59:11.000000000 +0100
-+++ sc/source/core/data/column2.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -69,6 +69,7 @@
+diff --git sc/source/core/data/column2.cxx sc/source/core/data/column2.cxx
+index 57e789c..cae5544 100644
+--- sc/source/core/data/column2.cxx
++++ sc/source/core/data/column2.cxx
+@@ -66,6 +66,7 @@
  #include "compiler.hxx"			// ScTokenArray GetCodeLen
  #include "dbcolect.hxx"
  #include "fillinfo.hxx"
@@ -300,7 +310,7 @@
  
  #include <math.h>
  
-@@ -1785,7 +1786,7 @@ void lcl_UpdateSubTotal( ScFunctionData&
+@@ -1782,7 +1783,7 @@ void lcl_UpdateSubTotal( ScFunctionData& rData, ScBaseCell* pCell )
  //	Mehrfachselektion:
  void ScColumn::UpdateSelectionFunction( const ScMarkData& rMark,
                                          ScFunctionData& rData,
@@ -309,7 +319,7 @@
                                          BOOL bDoExclude, SCROW nExStartRow, SCROW nExEndRow )
  {
      SCSIZE nIndex;
-@@ -1793,7 +1794,8 @@ void ScColumn::UpdateSelectionFunction(
+@@ -1790,7 +1791,8 @@ void ScColumn::UpdateSelectionFunction( const ScMarkData& rMark,
      while (aDataIter.Next( nIndex ))
      {
          SCROW nRow = pItems[nIndex].nRow;
@@ -319,7 +329,7 @@
              if ( !bDoExclude || nRow < nExStartRow || nRow > nExEndRow )
                  lcl_UpdateSubTotal( rData, pItems[nIndex].pCell );
      }
-@@ -1801,7 +1803,7 @@ void ScColumn::UpdateSelectionFunction(
+@@ -1798,7 +1800,7 @@ void ScColumn::UpdateSelectionFunction( const ScMarkData& rMark,
  
  //	bei bNoMarked die Mehrfachselektion weglassen
  void ScColumn::UpdateAreaFunction( ScFunctionData& rData,
@@ -328,7 +338,7 @@
                                      SCROW nStartRow, SCROW nEndRow )
  {
      SCSIZE nIndex;
-@@ -1809,7 +1811,8 @@ void ScColumn::UpdateAreaFunction( ScFun
+@@ -1806,7 +1808,8 @@ void ScColumn::UpdateAreaFunction( ScFunctionData& rData,
      while ( nIndex<nCount && pItems[nIndex].nRow<=nEndRow )
      {
          SCROW nRow = pItems[nIndex].nRow;
@@ -338,9 +348,11 @@
              lcl_UpdateSubTotal( rData, pItems[nIndex].pCell );
          ++nIndex;
      }
---- sc/source/core/data/dociter.cxx.old	2010-03-03 16:44:03.000000000 +0100
-+++ sc/source/core/data/dociter.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -348,7 +348,7 @@ BOOL ScValueIterator::GetThis(double& rV
+diff --git sc/source/core/data/dociter.cxx sc/source/core/data/dociter.cxx
+index 71709d8..c027376 100644
+--- sc/source/core/data/dociter.cxx
++++ sc/source/core/data/dociter.cxx
+@@ -345,7 +345,7 @@ BOOL ScValueIterator::GetThis(double& rValue, USHORT& rErr)
          if ( nColRow < pCol->nCount && pCol->pItems[nColRow].nRow <= nEndRow )
          {
              nRow = pCol->pItems[nColRow].nRow + 1;
@@ -349,7 +361,7 @@
              {
                  ScBaseCell* pCell = pCol->pItems[nColRow].pCell;
                  ++nColRow;
-@@ -1034,7 +1034,7 @@ ScBaseCell* ScCellIterator::GetThis()
+@@ -1031,7 +1031,7 @@ ScBaseCell* ScCellIterator::GetThis()
          if ( nColRow < pCol->nCount	&& pCol->pItems[nColRow].nRow <= nEndRow )
          {
              nRow = pCol->pItems[nColRow].nRow;
@@ -358,9 +370,11 @@
              {
                  ScBaseCell* pCell = pCol->pItems[nColRow].pCell;
  
---- sc/source/core/data/documen3.cxx.old	2010-03-03 16:59:12.000000000 +0100
-+++ sc/source/core/data/documen3.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1124,15 +1124,6 @@ BOOL ScDocument::SearchAndReplace(const
+diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
+index 0070d66..4409bb9 100644
+--- sc/source/core/data/documen3.cxx
++++ sc/source/core/data/documen3.cxx
+@@ -1119,15 +1119,6 @@ BOOL ScDocument::SearchAndReplace(const SvxSearchItem& rSearchItem,
      return bFound;
  }
  
@@ -376,7 +390,7 @@
  //	Outline anpassen
  
  BOOL ScDocument::UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, BOOL bShow )
-@@ -1559,46 +1550,43 @@ ScRange ScDocument::GetRange( SCTAB nTab
+@@ -1554,46 +1545,43 @@ ScRange ScDocument::GetRange( SCTAB nTab, const Rectangle& rMMRect )
      nTwips = (long) (aPosRect.Top() / HMM_PER_TWIPS);
  
      SCROW nY1 = 0;
@@ -436,7 +450,7 @@
  
      return ScRange( nX1,nY1,nTab, nX2,nY2,nTab );
  }
-@@ -1636,24 +1624,33 @@ void lcl_SnapVer( ScTable* pTable, long&
+@@ -1631,24 +1619,33 @@ void lcl_SnapVer( ScTable* pTable, long& rVal, SCROW& rStartRow )
      SCROW nRow = 0;
      long nTwips = (long) (rVal / HMM_PER_TWIPS);
      long nSnap = 0;
@@ -478,9 +492,11 @@
      rVal = (long) ( nSnap * HMM_PER_TWIPS );
      rStartRow = nRow;
  }
---- sc/source/core/data/document.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/core/data/document.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -97,6 +97,7 @@
+diff --git sc/source/core/data/document.cxx sc/source/core/data/document.cxx
+index b9d8c3a..ced6ff3 100644
+--- sc/source/core/data/document.cxx
++++ sc/source/core/data/document.cxx
+@@ -94,6 +94,7 @@
  #include "clipparam.hxx"
  
  #include <map>
@@ -488,7 +504,7 @@
  
  namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
  using ::com::sun::star::uno::Sequence;
-@@ -1980,9 +1981,6 @@ void ScDocument::CopyNonFilteredFromClip
+@@ -1971,9 +1972,6 @@ void ScDocument::CopyNonFilteredFromClip( SCCOL nCol1, SCROW nRow1,
      while ( nFlagTab < MAXTAB && !ppClipTab[nFlagTab] )
          ++nFlagTab;
  
@@ -498,7 +514,7 @@
      SCROW nSourceRow = rClipStartRow;
      SCROW nSourceEnd = 0;
      if (pCBFCP->pClipDoc->GetClipParam().maRanges.Count())
-@@ -1992,12 +1990,15 @@ void ScDocument::CopyNonFilteredFromClip
+@@ -1983,12 +1981,15 @@ void ScDocument::CopyNonFilteredFromClip( SCCOL nCol1, SCROW nRow1,
      while ( nSourceRow <= nSourceEnd && nDestRow <= nRow2 )
      {
          // skip filtered rows
@@ -516,7 +532,7 @@
              if (nFollow > nSourceEnd - nSourceRow)
                  nFollow = nSourceEnd - nSourceRow;
              if (nFollow > nRow2 - nDestRow)
-@@ -2405,8 +2406,7 @@ void ScDocument::GetClipArea(SCCOL& nCli
+@@ -2396,8 +2397,7 @@ void ScDocument::GetClipArea(SCCOL& nClipX, SCROW& nClipY, BOOL bIncludeFiltered
          while ( nCountTab < MAXTAB && !pTab[nCountTab] )
              ++nCountTab;
  
@@ -526,7 +542,7 @@
  
          if ( nResult > 0 )
              nClipY = nResult - 1;
-@@ -2445,8 +2445,13 @@ BOOL ScDocument::HasClipFilteredRows()
+@@ -2436,8 +2436,13 @@ BOOL ScDocument::HasClipFilteredRows()
      if (!rClipRanges.Count())
          return false;
  
@@ -542,7 +558,7 @@
  }
  
  
-@@ -3167,8 +3172,7 @@ ULONG ScDocument::GetRowHeight( SCROW nS
+@@ -3158,8 +3163,7 @@ ULONG ScDocument::GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) con
  ULONG ScDocument::FastGetRowHeight( SCROW nStartRow, SCROW nEndRow,
          SCTAB nTab ) const
  {
@@ -552,7 +568,7 @@
  }
  
  ULONG ScDocument::GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow,
-@@ -3480,6 +3484,163 @@ Sequence<TablePageBreakData> ScDocument:
+@@ -3471,6 +3475,163 @@ Sequence<TablePageBreakData> ScDocument::GetRowBreakData(SCTAB nTab) const
      return pTab[nTab]->GetRowBreakData();
  }
  
@@ -716,9 +732,11 @@
  void ScDocument::SyncColRowFlags()
  {
      for (SCTAB i = 0; i <= nMaxTableNumber; ++i)
---- sc/source/core/data/drwlayer.cxx.old	2010-03-03 16:59:10.000000000 +0100
-+++ sc/source/core/data/drwlayer.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -610,12 +610,14 @@ void ScDrawLayer::RecalcPos( SdrObject*
+diff --git sc/source/core/data/drwlayer.cxx sc/source/core/data/drwlayer.cxx
+index 8890105..778c689 100644
+--- sc/source/core/data/drwlayer.cxx
++++ sc/source/core/data/drwlayer.cxx
+@@ -604,12 +604,14 @@ void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool b
      {
          //!	nicht mehrere Undos fuer ein Objekt erzeugen (hinteres kann dann weggelassen werden)
  
@@ -735,7 +753,7 @@
                  aPos.Y() += pDoc->GetRowHeight( nRow1, nTab1 ) / 2;
              TwipsToMM( aPos.X() );
              TwipsToMM( aPos.Y() );
-@@ -647,9 +649,9 @@ void ScDrawLayer::RecalcPos( SdrObject*
+@@ -641,9 +643,9 @@ void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool b
          if( bValid2 )
          {
              Point aPos( pDoc->GetColOffset( nCol2, nTab2 ), pDoc->GetRowOffset( nRow2, nTab2 ) );
@@ -747,9 +765,11 @@
                  aPos.Y() += pDoc->GetRowHeight( nRow2, nTab2 ) / 2;
              TwipsToMM( aPos.X() );
              TwipsToMM( aPos.Y() );
---- sc/source/core/data/fillinfo.cxx.old	2010-03-03 16:44:01.000000000 +0100
-+++ sc/source/core/data/fillinfo.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -55,7 +55,6 @@
+diff --git sc/source/core/data/fillinfo.cxx sc/source/core/data/fillinfo.cxx
+index 05a0d93..18c0991 100644
+--- sc/source/core/data/fillinfo.cxx
++++ sc/source/core/data/fillinfo.cxx
+@@ -52,7 +52,6 @@
  #include "conditio.hxx"
  #include "stlpool.hxx"
  
@@ -757,7 +777,7 @@
  // -----------------------------------------------------------------------
  
  const USHORT ROWINFO_MAX = 1024;
-@@ -100,11 +99,13 @@ void lcl_GetMergeRange( SCsCOL nX, SCsRO
+@@ -97,11 +96,13 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY,
      rStartY = nY;
      BOOL bHOver = pInfo->bHOverlapped;
      BOOL bVOver = pInfo->bVOverlapped;
@@ -772,7 +792,7 @@
          {
              bHOver = pRowInfo[nArrY].pCellInfo[rStartX+1].bHOverlapped;
              bVOver = pRowInfo[nArrY].pCellInfo[rStartX+1].bVOverlapped;
-@@ -126,8 +127,8 @@ void lcl_GetMergeRange( SCsCOL nX, SCsRO
+@@ -123,8 +124,8 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY,
              --nArrY;						// lokale Kopie !
  
          if (rStartX >= (SCsCOL) nX1 && rStartY >= (SCsROW) nY1 &&
@@ -783,7 +803,7 @@
              (SCsROW) pRowInfo[nArrY].nRowNo == rStartY)
          {
              bHOver = pRowInfo[nArrY].pCellInfo[rStartX+1].bHOverlapped;
-@@ -144,8 +145,8 @@ void lcl_GetMergeRange( SCsCOL nX, SCsRO
+@@ -141,8 +142,8 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY,
  
      const ScMergeAttr* pMerge;
      if (rStartX >= (SCsCOL) nX1 && rStartY >= (SCsROW) nY1 &&
@@ -794,7 +814,7 @@
          (SCsROW) pRowInfo[nArrY].nRowNo == rStartY)
      {
          pMerge = (const ScMergeAttr*) &pRowInfo[nArrY].pCellInfo[rStartX+1].pPatternAttr->
-@@ -158,12 +159,6 @@ void lcl_GetMergeRange( SCsCOL nX, SCsRO
+@@ -155,12 +156,6 @@ void lcl_GetMergeRange( SCsCOL nX, SCsROW nY, SCSIZE nArrY,
      rEndY = rStartY + pMerge->GetRowMerge() - 1;
  }
  
@@ -807,7 +827,7 @@
  #define CELLINFO(x,y) pRowInfo[nArrY+y].pCellInfo[nArrX+x]
  
  void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
-@@ -359,7 +354,7 @@ void ScDocument::FillInfo( ScTableInfo&
+@@ -356,7 +351,7 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
          nX = nArrX-1;
          if ( ValidCol(nX) )
          {
@@ -816,7 +836,7 @@
              {
                  USHORT nThisWidth = (USHORT) (GetColWidth( nX, nTab ) * nScaleX);
                  if (!nThisWidth)
-@@ -379,7 +374,8 @@ void ScDocument::FillInfo( ScTableInfo&
+@@ -376,7 +371,8 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
              // #i58049#, #i57939# Hidden columns must be skipped here, or their attributes
              // will disturb the output
  
@@ -826,7 +846,7 @@
              {
                  USHORT nThisWidth = (USHORT) (GetColWidth( nX, nTab ) * nScaleX);
                  if (!nThisWidth)
-@@ -484,7 +480,14 @@ void ScDocument::FillInfo( ScTableInfo&
+@@ -481,7 +477,14 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
  
                          do
                          {
@@ -842,7 +862,7 @@
                              {
                                  RowInfo* pThisRowInfo = &pRowInfo[nArrY];
                                  if (pBackground != pDefBackground)			// Spalten-HG == Standard ?
-@@ -554,6 +557,14 @@ void ScDocument::FillInfo( ScTableInfo&
+@@ -551,6 +554,14 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX
  
                                  ++nArrY;
                              }
@@ -857,9 +877,11 @@
                              ++nCurRow;
                          }
                          while (nCurRow <= nThisRow && nCurRow <= nYExtra);
---- sc/source/core/data/olinetab.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/core/data/olinetab.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -44,6 +44,7 @@
+diff --git sc/source/core/data/olinetab.cxx sc/source/core/data/olinetab.cxx
+index 2f53db7..06a7f57 100644
+--- sc/source/core/data/olinetab.cxx
++++ sc/source/core/data/olinetab.cxx
+@@ -41,6 +41,7 @@
  #include "global.hxx"
  #include "rechead.hxx"
  #include "address.hxx"
@@ -867,7 +889,7 @@
  
  //------------------------------------------------------------------------
  
-@@ -640,8 +641,7 @@ BOOL ScOutlineArray::DeleteSpace( SCCOLR
+@@ -637,8 +638,7 @@ BOOL ScOutlineArray::DeleteSpace( SCCOLROW nStartPos, SCSIZE nSize )
      return bNeedSave;
  }
  
@@ -877,7 +899,7 @@
  {
      BOOL bModified = FALSE;
      ScSubOutlineIterator aIter( this );
-@@ -657,9 +657,7 @@ BOOL ScOutlineArray::ManualAction( SCCOL
+@@ -654,9 +654,7 @@ BOOL ScOutlineArray::ManualAction( SCCOLROW nStartPos, SCCOLROW nEndPos,
              {
                  //	#i12341# hide if all columns/rows are hidden, show if at least one
                  //	is visible
@@ -888,9 +910,11 @@
                  BOOL bAllHidden = (nEntryEnd <= nEnd && nEnd <
                          ::std::numeric_limits<SCCOLROW>::max());
  
---- sc/source/core/data/table1.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/core/data/table1.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -115,6 +115,7 @@
+diff --git sc/source/core/data/table1.cxx sc/source/core/data/table1.cxx
+index db08bf5..117fa4c 100644
+--- sc/source/core/data/table1.cxx
++++ sc/source/core/data/table1.cxx
+@@ -112,6 +112,7 @@
  #include "hints.hxx"		// fuer Paint-Broadcast
  #include "prnsave.hxx"
  #include "tabprotection.hxx"
@@ -898,7 +922,7 @@
  
  // STATIC DATA -----------------------------------------------------------
  
-@@ -138,6 +139,10 @@ ScTable::ScTable( ScDocument* pDoc, SCTA
+@@ -135,6 +136,10 @@ ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
      pRowHeight( NULL ),
      pColFlags( NULL ),
      pRowFlags( NULL ),
@@ -909,7 +933,7 @@
      pOutlineTable( NULL ),
      bTableAreaValid( FALSE ),
      bVisible( TRUE ),
-@@ -903,9 +908,10 @@ BOOL ScTable::ValidNextPos( SCCOL nCol,
+@@ -900,9 +905,10 @@ BOOL ScTable::ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
          //	auf der naechsten Zelle landet, auch wenn die geschuetzt/nicht markiert ist.
          //!	per Extra-Parameter steuern, nur fuer Cursor-Bewegung ???
  
@@ -922,7 +946,7 @@
              return FALSE;
      }
  
-@@ -932,8 +938,8 @@ void ScTable::GetNextPos( SCCOL& rCol, S
+@@ -929,8 +935,8 @@ void ScTable::GetNextPos( SCCOL& rCol, SCROW& rRow, SCsCOL nMovX, SCsROW nMovY,
      {
          BOOL bUp = ( nMovY < 0 );
          nRow = rMark.GetNextMarked( nCol, nRow, bUp );
@@ -933,7 +957,7 @@
          {
              //	#53697# ausgeblendete ueberspringen (s.o.)
              nRow += nMovY;
-@@ -943,7 +949,7 @@ void ScTable::GetNextPos( SCCOL& rCol, S
+@@ -940,7 +946,7 @@ void ScTable::GetNextPos( SCCOL& rCol, SCROW& rRow, SCsCOL nMovX, SCsROW nMovY,
          while ( nRow < 0 || nRow > MAXROW )
          {
              nCol = sal::static_int_cast<SCsCOL>( nCol + static_cast<SCsCOL>(nMovY) );
@@ -942,7 +966,7 @@
                  nCol = sal::static_int_cast<SCsCOL>( nCol + static_cast<SCsCOL>(nMovY) );   //	#53697# skip hidden rows (see above)
              if (nCol < 0)
              {
-@@ -962,8 +968,8 @@ void ScTable::GetNextPos( SCCOL& rCol, S
+@@ -959,8 +965,8 @@ void ScTable::GetNextPos( SCCOL& rCol, SCROW& rRow, SCsCOL nMovX, SCsROW nMovY,
              else if (nRow > MAXROW)
                  nRow = 0;
              nRow = rMark.GetNextMarked( nCol, nRow, bUp );
@@ -953,7 +977,7 @@
              {
                  //	#53697# ausgeblendete ueberspringen (s.o.)
                  nRow += nMovY;
-@@ -1360,19 +1366,14 @@ void ScTable::ExtendPrintArea( OutputDev
+@@ -1357,19 +1363,14 @@ void ScTable::ExtendPrintArea( OutputDevice* pDev,
  
      SCSIZE nIndex;
      SCCOL nPrintCol = rEndCol;
@@ -975,9 +999,11 @@
              {
                  ScBaseCell* pCell = aCol[nDataCol].GetCell(nRow);
                  if (pCell)
---- sc/source/core/data/table2.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/core/data/table2.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -132,6 +132,9 @@ void ScTable::InsertRow( SCCOL nStartCol
+diff --git sc/source/core/data/table2.cxx sc/source/core/data/table2.cxx
+index 597c8ff..5e1e58a 100644
+--- sc/source/core/data/table2.cxx
++++ sc/source/core/data/table2.cxx
+@@ -129,6 +129,9 @@ void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
          }
          if (pOutlineTable)
              pOutlineTable->InsertRow( nStartRow, nSize );
@@ -987,7 +1013,7 @@
      }
  
      for (SCCOL j=nStartCol; j<=nEndCol; j++)
-@@ -159,6 +162,9 @@ void ScTable::DeleteRow( SCCOL nStartCol
+@@ -155,6 +158,9 @@ void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
              if (pOutlineTable->DeleteRow( nStartRow, nSize ))
                  if (pUndoOutline)
                      *pUndoOutline = TRUE;
@@ -997,7 +1023,7 @@
      }
  
      {   // scope for bulk broadcast
-@@ -205,6 +211,9 @@ void ScTable::InsertCol( SCCOL nStartCol
+@@ -200,6 +206,9 @@ void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
          }
          if (pOutlineTable)
              pOutlineTable->InsertCol( nStartCol, nSize );
@@ -1007,7 +1033,7 @@
      }
  
  
-@@ -260,6 +269,9 @@ void ScTable::DeleteCol( SCCOL nStartCol
+@@ -254,6 +263,9 @@ void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
              if (pOutlineTable->DeleteCol( nStartCol, nSize ))
                  if (pUndoOutline)
                      *pUndoOutline = TRUE;
@@ -1017,7 +1043,7 @@
      }
  
  
-@@ -357,20 +369,21 @@ void ScTable::CopyToClip(SCCOL nCol1, SC
+@@ -348,20 +360,21 @@ void ScTable::CopyToClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
          //	copy widths/heights, and only "hidden", "filtered" and "manual" flags
          //	also for all preceding columns/rows, to have valid positions for drawing objects
  
@@ -1045,7 +1071,7 @@
  
          //	ggf. Formeln durch Werte ersetzen
  
-@@ -660,10 +673,12 @@ void ScTable::CopyToTable(SCCOL nCol1, S
+@@ -650,10 +663,12 @@ void ScTable::CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                  if (bWidth)
                      for (SCCOL i=nCol1; i<=nCol2; i++)
                      {
@@ -1059,7 +1085,7 @@
                          //!	Aenderungen zusammenfassen?
  						if (bHiddenChange && pCharts) 
                              pCharts->SetRangeDirty(ScRange( i, 0, nTab, i, MAXROW, nTab ));
-@@ -685,8 +700,10 @@ void ScTable::CopyToTable(SCCOL nCol1, S
+@@ -675,8 +690,10 @@ void ScTable::CopyToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                          // TODO: might need some performance improvement, block
                          // operations instead of single GetValue()/SetValue() calls.
                          BYTE nThisRowFlags = pRowFlags->GetValue(i);
@@ -1071,7 +1097,7 @@
                          //!	Aenderungen zusammenfassen?
  						if (bHiddenChange && pCharts)
                              pCharts->SetRangeDirty(ScRange( 0, i, nTab, MAXCOL, i, nTab ));
-@@ -1299,7 +1316,7 @@ BOOL ScTable::IsBlockEmpty( SCCOL nCol1,
+@@ -1277,7 +1294,7 @@ BOOL ScTable::IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
  
  SCSIZE ScTable::FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
                              SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
@@ -1080,7 +1106,7 @@
  {
      //	Rueckgabe = neues nArrY
  
-@@ -1332,7 +1349,7 @@ SCSIZE ScTable::FillMaxRot( RowInfo* pRo
+@@ -1310,7 +1327,7 @@ SCSIZE ScTable::FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCO
  
              for ( SCROW nRow = nAttrRow1; nRow <= nAttrRow2; nRow++ )
              {
@@ -1089,7 +1115,7 @@
                  {
                      BOOL bHitOne = TRUE;
                      if ( nCol > nX2+1 )
-@@ -1366,7 +1383,7 @@ SCSIZE ScTable::FillMaxRot( RowInfo* pRo
+@@ -1344,7 +1361,7 @@ SCSIZE ScTable::FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCO
      return nArrY;
  }
  
@@ -1098,7 +1124,7 @@
  {
      if ( !pColWidth || !pRowHeight || !pColFlags || !pRowFlags )
      {
-@@ -1381,7 +1398,7 @@ void ScTable::FindMaxRotCol( RowInfo* pR
+@@ -1359,7 +1376,7 @@ void ScTable::FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCC
  
      for (SCCOL nCol=0; nCol<=MAXCOL; nCol++)
      {
@@ -1107,7 +1133,7 @@
          {
              SCSIZE nArrY = 0;
              ScDocAttrIterator aIter( pDocument, nTab, nCol, nY1, nCol, nY2 );
-@@ -2160,13 +2177,13 @@ void ScTable::SetManualHeight( SCROW nSt
+@@ -2135,13 +2152,13 @@ void ScTable::SetManualHeight( SCROW nStartRow, SCROW nEndRow, BOOL bManual )
  }
  
  
@@ -1123,7 +1149,7 @@
              return 0;
          else
              return pColWidth[nCol];
-@@ -2187,7 +2204,7 @@ USHORT ScTable::GetOriginalWidth( SCCOL
+@@ -2162,7 +2179,7 @@ USHORT ScTable::GetOriginalWidth( SCCOL nCol ) const		// immer die eingestellte
  }
  
  
@@ -1132,7 +1158,7 @@
  {
      //	get the width that is used in the largest continuous column range (up to nEndCol)
  
-@@ -2199,24 +2216,24 @@ USHORT ScTable::GetCommonWidth( SCCOL nE
+@@ -2174,24 +2191,24 @@ USHORT ScTable::GetCommonWidth( SCCOL nEndCol ) const
  
      USHORT nMaxWidth = 0;
      USHORT nMaxCount = 0;
@@ -1161,7 +1187,7 @@
                      ++nRangeEnd;
              }
  
-@@ -2234,13 +2251,13 @@ USHORT ScTable::GetCommonWidth( SCCOL nE
+@@ -2209,13 +2226,13 @@ USHORT ScTable::GetCommonWidth( SCCOL nEndCol ) const
  }
  
  
@@ -1178,7 +1204,7 @@
              return 0;
          else
              return pRowHeight->GetValue(nRow);
-@@ -2250,28 +2267,53 @@ USHORT ScTable::GetRowHeight( SCROW nRow
+@@ -2225,28 +2242,53 @@ USHORT ScTable::GetRowHeight( SCROW nRow ) const
  }
  
  
@@ -1240,7 +1266,7 @@
      }
      else
          return (ULONG) ((nEndRow - nStartRow + 1) * ScGlobal::nStdRowHeight * fScale);
-@@ -2292,18 +2334,16 @@ USHORT ScTable::GetOriginalHeight( SCROW
+@@ -2267,18 +2309,16 @@ USHORT ScTable::GetOriginalHeight( SCROW nRow ) const		// non-0 even if hidden
  //	Spalten-/Zeilen-Flags
  
  
@@ -1268,7 +1294,7 @@
  }
  
  
-@@ -2311,9 +2351,9 @@ SCROW ScTable::GetHiddenRowCount( SCROW
+@@ -2286,9 +2326,9 @@ SCROW ScTable::GetHiddenRowCount( SCROW nRow ) const
  
  void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
  {
@@ -1280,7 +1306,7 @@
          if (bWasVis != bShow)
          {
              IncRecalcLevel();
-@@ -2327,10 +2367,8 @@ void ScTable::ShowCol(SCCOL nCol, BOOL b
+@@ -2302,10 +2342,8 @@ void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
                      pDrawLayer->WidthChanged( nTab, nCol, -(long) pColWidth[nCol] );
              }
  
@@ -1292,8 +1318,8 @@
 +
              DecRecalcLevel();
  
- 			ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
-@@ -2350,8 +2388,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL b
+             ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
+@@ -2324,8 +2362,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
  {
      if (VALIDROW(nRow) && pRowFlags)
      {
@@ -1303,7 +1329,7 @@
          if (bWasVis != bShow)
          {
              IncRecalcLevel();
-@@ -2365,10 +2402,10 @@ void ScTable::ShowRow(SCROW nRow, BOOL b
+@@ -2339,10 +2376,10 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
                      pDrawLayer->HeightChanged( nTab, nRow, -(long) pRowHeight->GetValue(nRow) );
              }
  
@@ -1316,8 +1342,8 @@
 +
              DecRecalcLevel();
  
- 			ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
-@@ -2390,8 +2427,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL
+             ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
+@@ -2363,8 +2400,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
  {
      if (VALIDROW(nRow) && pRowFlags)
      {
@@ -1327,7 +1353,7 @@
          IncRecalcLevel();
          InitializeNoteCaptions();
          if (bWasVis != bShow)
-@@ -2407,10 +2443,10 @@ void ScTable::DBShowRow(SCROW nRow, BOOL
+@@ -2380,10 +2416,10 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
          }
  
          //	Filter-Flag immer setzen, auch wenn Hidden unveraendert
@@ -1341,9 +1367,9 @@
 +
          DecRecalcLevel();
  
-		if (bWasVis != bShow)
-@@ -2440,12 +2476,11 @@ void ScTable::DBShowRows(SCROW nRow1, SC
-     InitializeNoteCaptions();
+         if (bWasVis != bShow)
+@@ -2410,12 +2446,11 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
+     SCROW nStartRow = nRow1;
      while (nStartRow <= nRow2)
      {
 -        BYTE nOldFlag = pRowFlags->GetValue(nStartRow) & CR_HIDDEN;
@@ -1357,7 +1383,7 @@
          BOOL bChanged = ( bWasVis != bShow );
          if ( bChanged )
          {
-@@ -2460,10 +2495,8 @@ void ScTable::DBShowRows(SCROW nRow1, SC
+@@ -2430,10 +2465,8 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
              }
          }
  
@@ -1370,7 +1396,7 @@
  
          if ( bChanged )
          {
-@@ -2493,12 +2526,11 @@ void ScTable::ShowRows(SCROW nRow1, SCRO
+@@ -2460,12 +2493,11 @@ void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
      InitializeNoteCaptions();
      while (nStartRow <= nRow2)
      {
@@ -1385,7 +1411,7 @@
          BOOL bChanged = ( bWasVis != bShow );
          if ( bChanged )
          {
-@@ -2513,10 +2545,9 @@ void ScTable::ShowRows(SCROW nRow1, SCRO
+@@ -2480,10 +2512,9 @@ void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
              }
          }
  
@@ -1398,7 +1424,7 @@
  
          if ( bChanged )
          {
-@@ -2534,16 +2565,6 @@ void ScTable::ShowRows(SCROW nRow1, SCRO
+@@ -2500,16 +2531,6 @@ void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
  }
  
  
@@ -1415,7 +1441,7 @@
  void ScTable::SetColFlags( SCCOL nCol, BYTE nNewFlags )
  {
      if (VALIDCOL(nCol) && pColFlags)
-@@ -2641,7 +2662,7 @@ BOOL ScTable::UpdateOutlineCol( SCCOL nS
+@@ -2607,7 +2628,7 @@ BOOL ScTable::UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, BOOL bShow )
      if (pOutlineTable && pColFlags)
      {
          ScBitMaskCompressedArray< SCCOLROW, BYTE> aArray( MAXCOL, pColFlags, MAXCOLCOUNT);
@@ -1424,7 +1450,7 @@
      }
      else
          return FALSE;
-@@ -2651,7 +2672,7 @@ BOOL ScTable::UpdateOutlineCol( SCCOL nS
+@@ -2617,7 +2638,7 @@ BOOL ScTable::UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, BOOL bShow )
  BOOL ScTable::UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, BOOL bShow )
  {
      if (pOutlineTable && pRowFlags)
@@ -1433,7 +1459,7 @@
      else
          return FALSE;
  }
-@@ -2659,54 +2680,58 @@ BOOL ScTable::UpdateOutlineRow( SCROW nS
+@@ -2625,54 +2646,58 @@ BOOL ScTable::UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, BOOL bShow )
  
  void ScTable::ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 )
  {
@@ -1524,7 +1550,7 @@
      }
  }
  
-@@ -2868,16 +2893,16 @@ BOOL ScTable::RefVisible(ScFormulaCell*
+@@ -2834,16 +2859,16 @@ BOOL ScTable::RefVisible(ScFormulaCell* pCell)
  
      if (pCell->HasOneReference(aRef))
      {
@@ -1548,7 +1574,7 @@
          }
      }
  
-@@ -2919,7 +2944,7 @@ void ScTable::SetDrawPageSize(bool bRese
+@@ -2885,7 +2910,7 @@ void ScTable::SetDrawPageSize(bool bResetStreamValid, bool bUpdateNoteCaptionPos
  }
  
  
@@ -1557,7 +1583,7 @@
  {
      ULONG n = 0;
      if ( pRowFlags && pRowHeight )
-@@ -2929,8 +2954,7 @@ ULONG ScTable::GetRowOffset( SCROW nRow
+@@ -2895,8 +2920,7 @@ ULONG ScTable::GetRowOffset( SCROW nRow ) const
          else if (nRow == 1)
              return GetRowHeight(0);
  
@@ -1567,7 +1593,7 @@
  #ifdef DBG_UTIL
          if (n == ::std::numeric_limits<unsigned long>::max())
              DBG_ERRORFILE("ScTable::GetRowOffset: row heights overflow");
-@@ -2943,18 +2967,42 @@ ULONG ScTable::GetRowOffset( SCROW nRow
+@@ -2909,18 +2933,42 @@ ULONG ScTable::GetRowOffset( SCROW nRow ) const
      return n;
  }
  
@@ -1617,9 +1643,11 @@
      }
      else
      {
---- sc/source/core/data/table3.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/core/data/table3.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -604,14 +604,17 @@ void ScTable::SwapRow(SCROW nRow1, SCROW
+diff --git sc/source/core/data/table3.cxx sc/source/core/data/table3.cxx
+index 93c4e82..14f8aa3 100644
+--- sc/source/core/data/table3.cxx
++++ sc/source/core/data/table3.cxx
+@@ -601,14 +601,17 @@ void ScTable::SwapRow(SCROW nRow1, SCROW nRow2)
              }
          }
      }
@@ -1644,7 +1672,7 @@
      }
  }
  
-@@ -992,13 +995,6 @@ BOOL ScTable::DoSubTotals( ScSubTotalPar
+@@ -989,13 +992,6 @@ BOOL ScTable::DoSubTotals( ScSubTotalParam& rParam )
                          SetString( nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, nTab, aOutString );
                          ApplyStyle( nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, *pStyle );
  
@@ -1658,7 +1686,7 @@
                          ++nRow;
                          ++nEndRow;
                          aRowEntry.nSubStartRow = nRow;
-@@ -1012,11 +1008,7 @@ BOOL ScTable::DoSubTotals( ScSubTotalPar
+@@ -1009,11 +1005,7 @@ BOOL ScTable::DoSubTotals( ScSubTotalParam& rParam )
                          }
                      }
                  }
@@ -1671,7 +1699,7 @@
              }
          }
          else
-@@ -2054,8 +2046,8 @@ void ScTable::UpdateSelectionFunction( S
+@@ -2050,8 +2042,8 @@ void ScTable::UpdateSelectionFunction( ScFunctionData& rData,
      SCCOL nCol;
      if ( rMark.IsMultiMarked() )
          for (nCol=0; nCol<=MAXCOL && !rData.bError; nCol++)
@@ -1682,7 +1710,7 @@
                                                      bSingle && ( nCol >= nStartCol && nCol <= nEndCol ),
                                                      nStartRow, nEndRow );
  
-@@ -2063,8 +2055,8 @@ void ScTable::UpdateSelectionFunction( S
+@@ -2059,8 +2051,8 @@ void ScTable::UpdateSelectionFunction( ScFunctionData& rData,
  
      if ( bSingle && !rMark.IsMarkNegative() )
          for (nCol=nStartCol; nCol<=nEndCol && !rData.bError; nCol++)
@@ -1693,9 +1721,11 @@
  }
  
  void ScTable::FindConditionalFormat( ULONG nKey, ScRangeList& rList )
---- sc/source/core/data/table5.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/core/data/table5.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -53,9 +53,11 @@
+diff --git sc/source/core/data/table5.cxx sc/source/core/data/table5.cxx
+index 61f3bec..a5b2c0b 100644
+--- sc/source/core/data/table5.cxx
++++ sc/source/core/data/table5.cxx
+@@ -50,9 +50,11 @@
  #include "brdcst.hxx"
  #include "tabprotection.hxx"
  #include "globstr.hrc"
@@ -1707,7 +1737,7 @@
  
  using ::com::sun::star::uno::Sequence;
  using ::com::sun::star::sheet::TablePageBreakData;
-@@ -168,7 +170,7 @@ void ScTable::UpdatePageBreaks( const Sc
+@@ -165,7 +167,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea )
      for (nX=nStartCol; nX<=nEndCol; nX++)
      {
          BOOL bStartOfPage = FALSE;
@@ -1716,7 +1746,7 @@
          bool bManualBreak = HasColManualBreak(nX);
          if ( (nSizeX+nThisX > nPageSizeX) || (bManualBreak && !bSkipBreaks) )
          {
-@@ -185,7 +187,7 @@ void ScTable::UpdatePageBreaks( const Sc
+@@ -182,7 +184,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea )
          {
              // subtract size of repeat columns from page size
              for (SCCOL i=nRepeatStartX; i<=nRepeatEndX; i++)
@@ -1725,7 +1755,7 @@
              while (nX<=nRepeatEndX)
                  RemoveColBreak(++nX, true, false);
              bColFound = TRUE;
-@@ -204,8 +206,7 @@ void ScTable::UpdatePageBreaks( const Sc
+@@ -201,8 +203,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea )
      for (SCROW nY = nStartRow; nY <= nEndRow; ++nY)
      {
          BOOL bStartOfPage = FALSE;
@@ -1735,7 +1765,7 @@
          bool bManualBreak = HasRowManualBreak(nY);
  		if ( (nSizeY+nThisY > nPageSizeY) || (bManualBreak && !bSkipBreaks) )
          {
-@@ -221,8 +222,7 @@ void ScTable::UpdatePageBreaks( const Sc
+@@ -218,8 +219,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea )
          if ( bStartOfPage && bRepeatRow && nY>nRepeatStartY && !bRowFound )
          {
              // subtract size of repeat rows from page size
@@ -1745,7 +1775,7 @@
  #ifdef DBG_UTIL
              if (nHeights == ::std::numeric_limits<unsigned long>::max())
                  DBG_ERRORFILE("ScTable::UpdatePageBreaks: row heights overflow");
-@@ -419,12 +419,516 @@ Sequence<TablePageBreakData> ScTable::Ge
+@@ -416,12 +416,516 @@ Sequence<TablePageBreakData> ScTable::GetRowBreakData() const
      return aSeq;
  }
  
@@ -2264,7 +2294,7 @@
      pRowFlags->AndValue(0, MAXROW, static_int_cast<BYTE>(~CR_MANUALBREAK));
      for (SCCOL i = 0; i <= MAXCOL; ++i)
          pColFlags[i] &= static_int_cast<BYTE>(~CR_MANUALBREAK);
-@@ -442,6 +946,10 @@ void ScTable::SyncColRowFlags()
+@@ -439,6 +943,10 @@ void ScTable::SyncColRowFlags()
                itr != itrEnd; ++itr)
              pColFlags[*itr] |= CR_MANUALBREAK;
      }
@@ -2275,9 +2305,11 @@
  }
  
  void ScTable::SetPageSize( const Size& rSize )
---- sc/source/core/tool/chartarr.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/core/tool/chartarr.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -47,6 +47,9 @@
+diff --git sc/source/core/tool/chartarr.cxx sc/source/core/tool/chartarr.cxx
+index 60574c9..7261ce1 100644
+--- sc/source/core/tool/chartarr.cxx
++++ sc/source/core/tool/chartarr.cxx
+@@ -44,6 +44,9 @@
  #include "cell.hxx"
  #include "docoptio.hxx"
  
@@ -2287,7 +2319,7 @@
  
  // -----------------------------------------------------------------------
  
-@@ -166,11 +169,17 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -163,11 +166,17 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
  
      SCCOL nStrCol = nCol1;		// fuer Beschriftung merken
      SCROW nStrRow = nRow1;
@@ -2310,7 +2342,7 @@
      // falls alles hidden ist, bleibt die Beschriftung am Anfang
      if ( nCol1 <= nCol2 )
      {
-@@ -184,17 +193,33 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -181,17 +190,33 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
      }
  
      SCSIZE nTotalCols = ( nCol1 <= nCol2 ? nCol2 - nCol1 + 1 : 0 );
@@ -2352,7 +2384,7 @@
  
      // May happen at least with more than 32k rows.
      if (nColCount > SHRT_MAX || nRowCount > SHRT_MAX)
-@@ -208,13 +233,13 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -205,13 +230,13 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
      {
          bValidData = FALSE;
          nColCount = 1;
@@ -2368,7 +2400,7 @@
      }
  
          //
-@@ -237,7 +262,7 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -234,7 +259,7 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
                  {
                      double nVal = DBL_MIN;		// Hack fuer Chart, um leere Zellen zu erkennen
  
@@ -2377,7 +2409,7 @@
                      if (pCell)
                      {
                          CellType eType = pCell->GetCellType();
-@@ -247,8 +272,8 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -244,8 +269,8 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
                              if ( bCalcAsShown && nVal != 0.0 )
                              {
                                  sal_uInt32 nFormat;
@@ -2388,7 +2420,7 @@
                                  nVal = pDocument->RoundValueAsShown( nVal, nFormat );
                              }
                          }
-@@ -280,13 +305,13 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -277,13 +302,13 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
          {
              String aString, aColStr;
              if (HasColHeaders())
@@ -2404,7 +2436,7 @@
                  aPos.Format( aColStr, SCA_VALID_COL, NULL );
                  aString += aColStr;
              }
-@@ -306,14 +331,14 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -303,14 +328,14 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
              String aString;
              if (HasRowHeaders())
              {
@@ -2422,7 +2454,7 @@
              }
              pMemChart->SetRowText( static_cast<short>(nRow), aString);
  
-@@ -349,11 +374,6 @@ ScMemChart* ScChartArray::CreateMemChart
+@@ -346,11 +371,6 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
  //        SetExtraStrings( *pMemChart );
      }
  
@@ -2434,9 +2466,11 @@
      return pMemChart;
  }
  
---- sc/source/filter/excel/colrowst.cxx.old	2010-03-03 16:44:03.000000000 +0100
-+++ sc/source/filter/excel/colrowst.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -310,7 +310,7 @@ void XclImpColRowSettings::ConvertHidden
+diff --git sc/source/filter/excel/colrowst.cxx sc/source/filter/excel/colrowst.cxx
+index 3a48aa6..c35f832 100644
+--- sc/source/filter/excel/colrowst.cxx
++++ sc/source/filter/excel/colrowst.cxx
+@@ -307,7 +307,7 @@ void XclImpColRowSettings::ConvertHiddenFlags( SCTAB nScTab )
              rDoc.ShowRow( nScRow, nScTab, FALSE );
              // #i38093# rows hidden by filter need extra flag
              if( (nFirstFilterScRow <= nScRow) && (nScRow <= nLastFilterScRow) )
@@ -2445,9 +2479,11 @@
          }
      }
  
---- sc/source/filter/excel/xetable.cxx.old	2009-10-08 16:17:08.000000000 +0200
-+++ sc/source/filter/excel/xetable.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1604,8 +1604,7 @@ XclExpColinfo::XclExpColinfo( const XclE
+diff --git sc/source/filter/excel/xetable.cxx sc/source/filter/excel/xetable.cxx
+index e7945b0..d064487 100644
+--- sc/source/filter/excel/xetable.cxx
++++ sc/source/filter/excel/xetable.cxx
+@@ -1601,8 +1601,7 @@ XclExpColinfo::XclExpColinfo( const XclExpRoot& rRoot,
      mnWidth = XclTools::GetXclColumnWidth( nScWidth, GetCharWidth() );
  
      // column flags
@@ -2457,7 +2493,7 @@
  
      // outline data
      rOutlineBfr.Update( nScCol );
-@@ -1830,7 +1829,7 @@ XclExpRow::XclExpRow( const XclExpRoot&
+@@ -1827,7 +1826,7 @@ XclExpRow::XclExpRow( const XclExpRoot& rRoot, sal_uInt16 nXclRow,
  
      BYTE nRowFlags = GetDoc().GetRowFlags( nScRow, nScTab );
      bool bUserHeight = ::get_flag< BYTE >( nRowFlags, CR_MANUALSIZE );
@@ -2466,9 +2502,11 @@
      ::set_flag( mnFlags, EXC_ROW_UNSYNCED, bUserHeight );
      ::set_flag( mnFlags, EXC_ROW_HIDDEN, bHidden );
  
---- sc/source/filter/excel/xlescher.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/filter/excel/xlescher.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -136,21 +136,20 @@ void lclGetRowFromY(
+diff --git sc/source/filter/excel/xlescher.cxx sc/source/filter/excel/xlescher.cxx
+index 5d74346..f8e821b 100644
+--- sc/source/filter/excel/xlescher.cxx
++++ sc/source/filter/excel/xlescher.cxx
+@@ -133,21 +133,20 @@ void lclGetRowFromY(
      // rnStartH in conjunction with nXclStartRow is used as buffer for previously calculated height
      long nTwipsY = static_cast< long >( nY / fScale + 0.5 );
      long nRowH = 0;
@@ -2497,9 +2535,11 @@
      rnOffset = static_cast< sal_uInt16 >( nRowH ? ((nTwipsY - rnStartH) * 256.0 / nRowH + 0.5) : 0 );
  }
  
---- sc/source/filter/html/htmlexp.cxx.old	2009-10-08 16:17:08.000000000 +0200
-+++ sc/source/filter/html/htmlexp.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -749,7 +749,7 @@ void ScHTMLExport::WriteTables()
+diff --git sc/source/filter/html/htmlexp.cxx sc/source/filter/html/htmlexp.cxx
+index 6a327fe..789c415 100644
+--- sc/source/filter/html/htmlexp.cxx
++++ sc/source/filter/html/htmlexp.cxx
+@@ -746,7 +746,7 @@ void ScHTMLExport::WriteTables()
          SCCOL nCol;
          for ( nCol=nStartCol; nCol<=nEndCol; nCol++ )
          {
@@ -2508,7 +2548,7 @@
                  ++nColCnt;
          }
          (((aByteStrOut += ' ') += OOO_STRING_SVTOOLS_HTML_O_cols) += '=') += ByteString::CreateFromInt32( nColCnt );
-@@ -770,7 +770,7 @@ void ScHTMLExport::WriteTables()
+@@ -767,7 +767,7 @@ void ScHTMLExport::WriteTables()
          aByteStr += '=';
          for ( nCol=nStartCol; nCol<=nEndCol; nCol++ )
          {
@@ -2517,7 +2557,7 @@
                  continue;	// for
  
              aByteStrOut  = aByteStr;
-@@ -785,14 +785,12 @@ void ScHTMLExport::WriteTables()
+@@ -782,14 +782,12 @@ void ScHTMLExport::WriteTables()
          // At least old (3.x, 4.x?) Netscape doesn't follow <TABLE COLS=n> and
          // <COL WIDTH=x> specified, but needs a width at every column.
          bTableDataWidth = TRUE;     // widths in first row
@@ -2535,7 +2575,7 @@
                  --nRow;
                  continue;	// for
              }
-@@ -801,7 +799,7 @@ void ScHTMLExport::WriteTables()
+@@ -798,7 +796,7 @@ void ScHTMLExport::WriteTables()
              bTableDataHeight = TRUE;  // height at every first cell of each row
              for ( SCCOL nCol2=nStartCol; nCol2<=nEndCol; nCol2++ )
              {
@@ -2544,9 +2584,11 @@
                      continue;	// for
  
                  if ( nCol2 == nEndCol )
---- sc/source/filter/lotus/lotimpop.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/filter/lotus/lotimpop.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -183,8 +183,7 @@ void ImportLotus::Hiddencolumn( UINT16 n
+diff --git sc/source/filter/lotus/lotimpop.cxx sc/source/filter/lotus/lotimpop.cxx
+index 92809e4..517eb4f 100644
+--- sc/source/filter/lotus/lotimpop.cxx
++++ sc/source/filter/lotus/lotimpop.cxx
+@@ -180,8 +180,7 @@ void ImportLotus::Hiddencolumn( UINT16 nRecLen )
          {
              Read( nCol );
  
@@ -2556,9 +2598,11 @@
              nCnt--;
          }
      }
---- sc/source/filter/lotus/op.cxx.old	2009-10-08 16:17:08.000000000 +0200
-+++ sc/source/filter/lotus/op.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -229,7 +229,7 @@ void OP_ColumnWidth( SvStream& r, UINT16
+diff --git sc/source/filter/lotus/op.cxx sc/source/filter/lotus/op.cxx
+index f8b76da..6121b61 100644
+--- sc/source/filter/lotus/op.cxx
++++ sc/source/filter/lotus/op.cxx
+@@ -226,7 +226,7 @@ void OP_ColumnWidth( SvStream& r, UINT16 /*n*/ )
          nBreite = ( UINT16 ) ( TWIPS_PER_CHAR * nWidthSpaces );
      else
      {
@@ -2567,7 +2611,7 @@
          nBreite = nDefWidth;
      }
  
-@@ -338,7 +338,7 @@ void OP_HiddenCols( SvStream& r, UINT16
+@@ -335,7 +335,7 @@ void OP_HiddenCols( SvStream& r, UINT16 /*n*/ )
          {
              if( nAkt & 0x01 )   // unterstes Bit gesetzt?
                  // -> Hidden Col
@@ -2576,9 +2620,11 @@
  
              nCount++;
              nAkt = nAkt / 2;    // der Naechste bitte...
---- sc/source/filter/rtf/expbase.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/filter/rtf/expbase.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -78,16 +78,13 @@ BOOL ScExportBase::GetDataArea( SCTAB nT
+diff --git sc/source/filter/rtf/expbase.cxx sc/source/filter/rtf/expbase.cxx
+index 3188b4f..3f7eef8 100644
+--- sc/source/filter/rtf/expbase.cxx
++++ sc/source/filter/rtf/expbase.cxx
+@@ -75,16 +75,13 @@ BOOL ScExportBase::GetDataArea( SCTAB nTab, SCCOL& nStartCol,
  BOOL ScExportBase::TrimDataArea( SCTAB nTab, SCCOL& nStartCol,
              SCROW& nStartRow, SCCOL& nEndCol, SCROW& nEndRow ) const
  {
@@ -2600,9 +2646,11 @@
      return nStartCol <= nEndCol && nStartRow <= nEndRow && nEndRow !=
          ::std::numeric_limits<SCROW>::max();
  }
---- sc/source/filter/starcalc/scflt.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/filter/starcalc/scflt.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1551,14 +1551,12 @@ void Sc10Import::LoadTables()
+diff --git sc/source/filter/starcalc/scflt.cxx sc/source/filter/starcalc/scflt.cxx
+index 2426237..7bb2e8f 100644
+--- sc/source/filter/starcalc/scflt.cxx
++++ sc/source/filter/starcalc/scflt.cxx
+@@ -1548,14 +1548,12 @@ void Sc10Import::LoadTables()
              rStream >> DataValue;
              if (DataValue != 0)
              {
@@ -2620,7 +2668,7 @@
                      pDoc->SetColBreak(k, static_cast<SCTAB> (TabNo), bPageBreak, bManualBreak);
                  }
              }
-@@ -1603,14 +1601,12 @@ void Sc10Import::LoadTables()
+@@ -1600,14 +1598,12 @@ void Sc10Import::LoadTables()
              rStream >> DataValue;
              if (DataValue != 0)
              {
@@ -2637,9 +2685,11 @@
                      pDoc->SetRowBreak(l, static_cast<SCTAB> (TabNo), bPageBreak, bManualBreak);
                  }
              }
---- sc/source/ui/Accessibility/AccessibleCellBase.cxx.old	2009-10-07 15:06:14.000000000 +0200
-+++ sc/source/ui/Accessibility/AccessibleCellBase.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -95,10 +95,12 @@ sal_Bool SAL_CALL ScAccessibleCellBase::
+diff --git sc/source/ui/Accessibility/AccessibleCellBase.cxx sc/source/ui/Accessibility/AccessibleCellBase.cxx
+index cbe5356..b3d1676 100644
+--- sc/source/ui/Accessibility/AccessibleCellBase.cxx
++++ sc/source/ui/Accessibility/AccessibleCellBase.cxx
+@@ -92,10 +92,12 @@ sal_Bool SAL_CALL ScAccessibleCellBase::isVisible(  )
      sal_Bool bVisible(sal_True);
      if (mpDoc)
      {
@@ -2656,9 +2706,11 @@
              bVisible = sal_False;
      }
      return bVisible;
---- sc/source/ui/app/inputwin.cxx.old	2009-12-03 13:50:47.000000000 +0100
-+++ sc/source/ui/app/inputwin.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -292,7 +292,7 @@ sal_Bool ScInputWindow::UseSubTotal(ScRa
+diff --git sc/source/ui/app/inputwin.cxx sc/source/ui/app/inputwin.cxx
+index 80cdfcc..bc0f05d 100644
+--- sc/source/ui/app/inputwin.cxx
++++ sc/source/ui/app/inputwin.cxx
+@@ -289,7 +289,7 @@ sal_Bool ScInputWindow::UseSubTotal(ScRangeList* pRangeList) const
                      SCROW nRow(pRange->aStart.Row());
                      while (!bSubTotal && nRow <= nRowEnd)
                      {
@@ -2667,9 +2719,11 @@
                              bSubTotal = sal_True;
                          else
                              ++nRow;
---- sc/source/ui/app/transobj.cxx.old	2009-10-08 16:17:08.000000000 +0200
-+++ sc/source/ui/app/transobj.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -605,25 +605,24 @@ void ScTransferObj::InitDocShell()
+diff --git sc/source/ui/app/transobj.cxx sc/source/ui/app/transobj.cxx
+index 38e1539..31aa2e8 100644
+--- sc/source/ui/app/transobj.cxx
++++ sc/source/ui/app/transobj.cxx
+@@ -602,25 +602,24 @@ void ScTransferObj::InitDocShell()
          //	widths / heights
          //	(must be copied before CopyFromClip, for drawing objects)
  
@@ -2702,9 +2756,11 @@
                  pDestDoc->ShowRow( nRow, 0, FALSE );
              else
              {
---- sc/source/ui/docshell/docfunc.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/docshell/docfunc.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -3106,7 +3106,9 @@ BOOL ScDocFunc::SetWidthOrHeight( BOOL b
+diff --git sc/source/ui/docshell/docfunc.cxx sc/source/ui/docshell/docfunc.cxx
+index ed8f129..dca726a 100644
+--- sc/source/ui/docshell/docfunc.cxx
++++ sc/source/ui/docshell/docfunc.cxx
+@@ -3103,7 +3103,9 @@ BOOL ScDocFunc::SetWidthOrHeight( BOOL bWidth, SCCOLROW nRangeCnt, SCCOLROW* pRa
                      for (SCROW nRow=nStartNo; nRow<=nEndNo; nRow++)
                      {
                          BYTE nOld = pDoc->GetRowFlags(nRow,nTab);
@@ -2715,7 +2771,7 @@
                              pDoc->SetRowFlags( nRow, nTab, nOld & ~CR_MANUALSIZE );
                      }
                  }
-@@ -3141,8 +3143,8 @@ BOOL ScDocFunc::SetWidthOrHeight( BOOL b
+@@ -3138,8 +3140,8 @@ BOOL ScDocFunc::SetWidthOrHeight( BOOL bWidth, SCCOLROW nRangeCnt, SCCOLROW* pRa
          {
              for (SCCOL nCol=static_cast<SCCOL>(nStartNo); nCol<=static_cast<SCCOL>(nEndNo); nCol++)
              {
@@ -2726,9 +2782,11 @@
                  {
                      USHORT nThisSize = nSizeTwips;
  
---- sc/source/ui/docshell/impex.cxx.old	2010-03-03 16:59:15.000000000 +0100
-+++ sc/source/ui/docshell/impex.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1465,7 +1465,7 @@ BOOL ScImportExport::Doc2Text( SvStream&
+diff --git sc/source/ui/docshell/impex.cxx sc/source/ui/docshell/impex.cxx
+index 97ab62e..66731dc 100644
+--- sc/source/ui/docshell/impex.cxx
++++ sc/source/ui/docshell/impex.cxx
+@@ -1462,7 +1462,7 @@ BOOL ScImportExport::Doc2Text( SvStream& rStrm )
  
      for (nRow = nStartRow; nRow <= nEndRow; nRow++)
      {
@@ -2737,9 +2795,11 @@
          {
              for (nCol = nStartCol; nCol <= nEndCol; nCol++)
              {
---- sc/source/ui/docshell/olinefun.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/docshell/olinefun.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -423,7 +423,7 @@ BOOL ScOutlineDocFunc::SelectLevel( SCTA
+diff --git sc/source/ui/docshell/olinefun.cxx sc/source/ui/docshell/olinefun.cxx
+index c04f2ab..80615ae 100644
+--- sc/source/ui/docshell/olinefun.cxx
++++ sc/source/ui/docshell/olinefun.cxx
+@@ -420,7 +420,7 @@ BOOL ScOutlineDocFunc::SelectLevel( SCTAB nTab, BOOL bColumns, USHORT nLevel,
              if ( bColumns )
                  pDoc->ShowCol( static_cast<SCCOL>(i), nTab, bShow );
              else
@@ -2748,7 +2808,7 @@
                      pDoc->ShowRow( i, nTab, bShow );
          }
      }
-@@ -521,7 +521,7 @@ BOOL ScOutlineDocFunc::ShowMarkedOutline
+@@ -518,7 +518,7 @@ BOOL ScOutlineDocFunc::ShowMarkedOutlines( const ScRange& rRange, BOOL bRecord,
              }
          }
          for ( i=nMin; i<=nMax; i++ )
@@ -2757,7 +2817,7 @@
                  pDoc->ShowRow( i, nTab, TRUE );
  
          pDoc->UpdatePageBreaks( nTab );
-@@ -681,7 +681,7 @@ BOOL ScOutlineDocFunc::ShowOutline( SCTA
+@@ -678,7 +678,7 @@ BOOL ScOutlineDocFunc::ShowOutline( SCTAB nTab, BOOL bColumns, USHORT nLevel, US
          if ( bColumns )
              pDoc->ShowCol( static_cast<SCCOL>(i), nTab, TRUE );
          else
@@ -2766,9 +2826,11 @@
                  pDoc->ShowRow( i, nTab, TRUE );
      }
  
---- sc/source/ui/inc/viewutil.hxx.old	2009-10-08 16:17:09.000000000 +0200
-+++ sc/source/ui/inc/viewutil.hxx	2010-03-03 16:59:19.000000000 +0100
-@@ -71,10 +71,10 @@ public:
+diff --git sc/source/ui/inc/viewutil.hxx sc/source/ui/inc/viewutil.hxx
+index 790e6ea..09bddf6 100644
+--- sc/source/ui/inc/viewutil.hxx
++++ sc/source/ui/inc/viewutil.hxx
+@@ -68,10 +68,10 @@ public:
  
      static sal_Int32 GetTransliterationType( USHORT nSlotID );
  
@@ -2781,9 +2843,11 @@
      static void UnmarkFiltered( ScMarkData& rMark, ScDocument* pDoc );
  
      static void HideDisabledSlot( SfxItemSet& rSet, SfxBindings& rBindings, USHORT nSlotId );
---- sc/source/ui/undo/undoblk.cxx.old	2010-03-03 16:59:13.000000000 +0100
-+++ sc/source/ui/undo/undoblk.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1152,10 +1152,10 @@ ScUndoDragDrop::ScUndoDragDrop( ScDocShe
+diff --git sc/source/ui/undo/undoblk.cxx sc/source/ui/undo/undoblk.cxx
+index e372ee6..50207cd 100644
+--- sc/source/ui/undo/undoblk.cxx
++++ sc/source/ui/undo/undoblk.cxx
+@@ -1149,10 +1149,10 @@ ScUndoDragDrop::ScUndoDragDrop( ScDocShell* pNewDocShell,
      BOOL bIncludeFiltered = bCut;
      if ( !bIncludeFiltered )
      {
@@ -2798,9 +2862,11 @@
          if ( nPastedCount == 0 )
              nPastedCount = 1;
          aDestEnd.SetRow( aNewDestPos.Row() + nPastedCount - 1 );
---- sc/source/ui/undo/undoblk3.cxx.old	2010-03-03 16:59:13.000000000 +0100
-+++ sc/source/ui/undo/undoblk3.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1082,17 +1082,20 @@ void __EXPORT ScUndoAutoFormat::Redo()
+diff --git sc/source/ui/undo/undoblk3.cxx sc/source/ui/undo/undoblk3.cxx
+index 3282ada..0f1c2d5 100644
+--- sc/source/ui/undo/undoblk3.cxx
++++ sc/source/ui/undo/undoblk3.cxx
+@@ -1079,17 +1079,20 @@ void __EXPORT ScUndoAutoFormat::Redo()
              aDestMark.MarkToMulti();
  
              // wie SC_SIZE_VISOPT
@@ -2823,15 +2889,26 @@
                  {
                      USHORT nThisSize = STD_EXTRA_WIDTH + pDoc->GetOptimalColWidth( nCol, nTab,
                                                  &aVirtDev, nPPTX, nPPTY, aZoomX, aZoomY, bFormula,
---- sc/source/ui/unoobj/cellsuno.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/unoobj/cellsuno.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -3379,18 +3379,25 @@ uno::Reference<sheet::XSheetCellRanges>
+diff --git sc/source/ui/unoobj/cellsuno.cxx sc/source/ui/unoobj/cellsuno.cxx
+index d6f9aec..0def997 100644
+--- sc/source/ui/unoobj/cellsuno.cxx
++++ sc/source/ui/unoobj/cellsuno.cxx
+@@ -3376,18 +3376,25 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryVisibleC
          ScMarkData aMarkData(*GetMarkData());
  
          ScDocument* pDoc = pDocShell->GetDocument();
 -        for (SCCOL nCol=0; nCol<=MAXCOL; nCol++)
 -            if (pDoc->GetColFlags(nCol,nTab) & CR_HIDDEN)
 -                aMarkData.SetMultiMarkArea( ScRange( nCol,0,nTab, nCol,MAXROW,nTab ), FALSE );
+-
+-        //!	nur bis zur letzten selektierten Zeile testen?
+-        ScCompressedArrayIterator< SCROW, BYTE> aIter( pDoc->GetRowFlagsArray( nTab), 0, MAXROW);
+-        do
+-        {
+-            if (*aIter & CR_HIDDEN)
+-                aMarkData.SetMultiMarkArea( ScRange( 0, aIter.GetRangeStart(),
+-                            nTab, MAXCOL, aIter.GetRangeEnd(), nTab ), FALSE );
+-        } while (aIter.NextRange());
 +		SCCOL nCol = 0, nLastCol;
 +		while (nCol <= MAXCOL)
 +		{
@@ -2848,21 +2925,13 @@
 +			if (pDoc->RowHidden(nRow, nTab, nLastRow))
 +				// These rows are hidden.  Unselect them.
 +				aMarkData.SetMultiMarkArea(ScRange(0, nRow, nTab, MAXCOL, nLastRow, nTab), false);
- 
--        //!	nur bis zur letzten selektierten Zeile testen?
--        ScCompressedArrayIterator< SCROW, BYTE> aIter( pDoc->GetRowFlagsArray( nTab), 0, MAXROW);
--        do
--        {
--            if (*aIter & CR_HIDDEN)
--                aMarkData.SetMultiMarkArea( ScRange( 0, aIter.GetRangeStart(),
--                            nTab, MAXCOL, aIter.GetRangeEnd(), nTab ), FALSE );
--        } while (aIter.NextRange());
++
 +			nRow = nLastRow + 1;
 +		}
  
          ScRangeList aNewRanges;
          aMarkData.FillRangeListWithMarks( &aNewRanges, FALSE );
-@@ -8856,8 +8863,9 @@ void ScTableColumnObj::GetOnePropertyVal
+@@ -8853,8 +8860,9 @@ void ScTableColumnObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
          }
          else if ( pEntry->nWID == SC_WID_UNO_CELLVIS )
          {
@@ -2874,7 +2943,7 @@
          }
          else if ( pEntry->nWID == SC_WID_UNO_OWIDTH )
          {
-@@ -8959,12 +8967,7 @@ void ScTableRowObj::SetOnePropertyValue(
+@@ -8956,12 +8964,7 @@ void ScTableRowObj::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pEntr
  //			ScSizeMode eMode = bVis ? SC_SIZE_SHOW : SC_SIZE_DIRECT;
  //			aFunc.SetWidthOrHeight( FALSE, 1, nRowArr, nTab, eMode, 0, TRUE, TRUE );
              //	SC_SIZE_DIRECT mit Groesse 0 blendet aus
@@ -2888,7 +2957,7 @@
          }
          else if ( pEntry->nWID == SC_WID_UNO_OHEIGHT )
          {
-@@ -9016,12 +9019,13 @@ void ScTableRowObj::GetOnePropertyValue(
+@@ -9013,12 +9016,13 @@ void ScTableRowObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEntr
          }
          else if ( pEntry->nWID == SC_WID_UNO_CELLVIS )
          {
@@ -2905,9 +2974,11 @@
              ScUnoHelpFunctions::SetBoolInAny( rAny, bVis );
          }
          else if ( pEntry->nWID == SC_WID_UNO_OHEIGHT )
---- sc/source/ui/unoobj/chart2uno.cxx.old	2010-03-03 16:59:10.000000000 +0100
-+++ sc/source/ui/unoobj/chart2uno.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -2856,14 +2856,17 @@ void ScChart2DataSequence::BuildDataCach
+diff --git sc/source/ui/unoobj/chart2uno.cxx sc/source/ui/unoobj/chart2uno.cxx
+index 2f7a89e..99ad720 100644
+--- sc/source/ui/unoobj/chart2uno.cxx
++++ sc/source/ui/unoobj/chart2uno.cxx
+@@ -2853,14 +2853,17 @@ void ScChart2DataSequence::BuildDataCache()
              if (!ScRefTokenHelper::getRangeFromToken(aRange, *itr))
                  continue;
  
@@ -2927,9 +2998,11 @@
                          if (bColHidden || bRowHidden)
                          {
                              // hidden cell
---- sc/source/ui/unoobj/docuno.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/unoobj/docuno.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -2656,7 +2656,8 @@ uno::Any SAL_CALL ScTableColumnsObj::get
+diff --git sc/source/ui/unoobj/docuno.cxx sc/source/ui/unoobj/docuno.cxx
+index 3db0ecc..153573b 100644
+--- sc/source/ui/unoobj/docuno.cxx
++++ sc/source/ui/unoobj/docuno.cxx
+@@ -2653,7 +2653,8 @@ uno::Any SAL_CALL ScTableColumnsObj::getPropertyValue( const rtl::OUString& aPro
      }
      else if ( aNameString.EqualsAscii( SC_UNONAME_CELLVIS ) )
      {
@@ -2939,7 +3012,7 @@
          ScUnoHelpFunctions::SetBoolInAny( aAny, bVis );
      }
      else if ( aNameString.EqualsAscii( SC_UNONAME_OWIDTH ) )
-@@ -2864,9 +2865,9 @@ void SAL_CALL ScTableRowsObj::setPropert
+@@ -2861,9 +2862,9 @@ void SAL_CALL ScTableRowsObj::setPropertyValue(
      {
          //!	undo etc.
          if (ScUnoHelpFunctions::GetBoolFromAny( aValue ))
@@ -2951,7 +3024,7 @@
      }
      else if ( aNameString.EqualsAscii( SC_UNONAME_NEWPAGE) || aNameString.EqualsAscii( SC_UNONAME_MANPAGE) )
      {
-@@ -2914,12 +2915,13 @@ uno::Any SAL_CALL ScTableRowsObj::getPro
+@@ -2911,12 +2912,13 @@ uno::Any SAL_CALL ScTableRowsObj::getPropertyValue( const rtl::OUString& aProper
      }
      else if ( aNameString.EqualsAscii( SC_UNONAME_CELLVIS ) )
      {
@@ -2967,9 +3040,11 @@
          ScUnoHelpFunctions::SetBoolInAny( aAny, bVis );
      }
      else if ( aNameString.EqualsAscii( SC_UNONAME_OHEIGHT ) )
---- sc/source/ui/view/colrowba.cxx.old	2010-03-03 16:59:10.000000000 +0100
-+++ sc/source/ui/view/colrowba.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -101,7 +101,8 @@ USHORT ScColBar::GetEntrySize( SCCOLROW
+diff --git sc/source/ui/view/colrowba.cxx sc/source/ui/view/colrowba.cxx
+index d658268..b643213 100644
+--- sc/source/ui/view/colrowba.cxx
++++ sc/source/ui/view/colrowba.cxx
+@@ -98,7 +98,8 @@ USHORT ScColBar::GetEntrySize( SCCOLROW nEntryNo )
  {
      ScDocument* pDoc = pViewData->GetDocument();
      SCTAB nTab = pViewData->GetTabNo();
@@ -2979,7 +3054,7 @@
          return 0;
      else
          return (USHORT) ScViewData::ToPixel( pDoc->GetColWidth( static_cast<SCCOL>(nEntryNo), nTab ), pViewData->GetPPTX() );
-@@ -267,7 +268,8 @@ USHORT ScRowBar::GetEntrySize( SCCOLROW
+@@ -264,7 +265,8 @@ USHORT ScRowBar::GetEntrySize( SCCOLROW nEntryNo )
  {
      ScDocument* pDoc = pViewData->GetDocument();
      SCTAB nTab = pViewData->GetTabNo();
@@ -2989,9 +3064,11 @@
          return 0;
      else
          return (USHORT) ScViewData::ToPixel( pDoc->GetOriginalHeight( nEntryNo,
---- sc/source/ui/view/drawutil.cxx.old	2009-10-07 15:06:15.000000000 +0200
-+++ sc/source/ui/view/drawutil.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -69,14 +69,19 @@ void ScDrawUtil::CalcScale( ScDocument*
+diff --git sc/source/ui/view/drawutil.cxx sc/source/ui/view/drawutil.cxx
+index 1f19f9c..c9a3246 100644
+--- sc/source/ui/view/drawutil.cxx
++++ sc/source/ui/view/drawutil.cxx
+@@ -66,14 +66,19 @@ void ScDrawUtil::CalcScale( ScDocument* pDoc, SCTAB nTab,
          nTwipsX += (long) nWidth;
          nPixelX += ScViewData::ToPixel( nWidth, nPPTX );
      }
@@ -3018,9 +3095,11 @@
      }
  
      MapMode aHMMMode( MAP_100TH_MM, Point(), rZoomX, rZoomY );
---- sc/source/ui/view/gridwin.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/view/gridwin.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -4628,18 +4628,17 @@ void lcl_PaintOneRange( ScDocShell* pDoc
+diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
+index f566df8..025d1f0 100644
+--- sc/source/ui/view/gridwin.cxx
++++ sc/source/ui/view/gridwin.cxx
+@@ -4625,18 +4625,17 @@ void lcl_PaintOneRange( ScDocShell* pDocSh, const ScRange& rRange, USHORT nEdges
      SCROW nTmp;
  
      ScDocument* pDoc = pDocSh->GetDocument();
@@ -3042,7 +3121,7 @@
      if (!ValidRow(nTmp))
          nTmp = 0;
      if (nTmp < nRow1)
-@@ -4647,8 +4646,7 @@ void lcl_PaintOneRange( ScDocShell* pDoc
+@@ -4644,8 +4643,7 @@ void lcl_PaintOneRange( ScDocShell* pDocSh, const ScRange& rRange, USHORT nEdges
          nRow1 = nTmp;
          bHiddenEdge = TRUE;
      }
@@ -3052,9 +3131,11 @@
      if (!ValidRow(nTmp))
          nTmp = MAXROW;
      if (nTmp > nRow2)
---- sc/source/ui/view/gridwin4.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/view/gridwin4.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1379,7 +1379,7 @@ Rectangle ScGridWindow::GetListValButton
+diff --git sc/source/ui/view/gridwin4.cxx sc/source/ui/view/gridwin4.cxx
+index 1207c03..b64fff0 100644
+--- sc/source/ui/view/gridwin4.cxx
++++ sc/source/ui/view/gridwin4.cxx
+@@ -1376,7 +1376,7 @@ Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos )
      const ScMergeAttr* pMerge = static_cast<const ScMergeAttr*>(pDoc->GetAttr( nCol,nRow,nTab, ATTR_MERGE ));
      if ( pMerge->GetColMerge() > 1 )
          nNextCol = nCol + pMerge->GetColMerge();    // next cell after the merged area
@@ -3063,7 +3144,7 @@
          ++nNextCol;
      BOOL bNextCell = ( nNextCol <= MAXCOL );
      if ( bNextCell )
-@@ -1582,7 +1582,7 @@ void ScGridWindow::InvertSimple( SCCOL n
+@@ -1579,7 +1579,7 @@ void ScGridWindow::InvertSimple( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
                          if ( pMergeFlag->IsVerOverlapped() && ( bDoHidden || bFirstRow ) )
                          {
                              while ( pMergeFlag->IsVerOverlapped() && nThisY > 0 &&
@@ -3072,7 +3153,7 @@
                              {
                                  --nThisY;
                                  pPattern = pDoc->GetPattern( nX, nThisY, nTab );
-@@ -1769,7 +1769,7 @@ void ScGridWindow::GetSelectionRects( ::
+@@ -1766,7 +1766,7 @@ void ScGridWindow::GetSelectionRects( ::std::vector< Rectangle >& rPixelRects )
                          if ( pMergeFlag->IsVerOverlapped() && ( bDoHidden || bFirstRow ) )
                          {
                              while ( pMergeFlag->IsVerOverlapped() && nThisY > 0 &&
@@ -3081,9 +3162,11 @@
                              {
                                  --nThisY;
                                  pPattern = pDoc->GetPattern( nX, nThisY, nTab );
---- sc/source/ui/view/olinewin.cxx.old	2009-10-07 15:06:15.000000000 +0200
-+++ sc/source/ui/view/olinewin.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -186,16 +186,15 @@ const ScOutlineEntry* ScOutlineWindow::G
+diff --git sc/source/ui/view/olinewin.cxx sc/source/ui/view/olinewin.cxx
+index 68725e5..3f08fc1 100644
+--- sc/source/ui/view/olinewin.cxx
++++ sc/source/ui/view/olinewin.cxx
+@@ -183,16 +183,15 @@ const ScOutlineEntry* ScOutlineWindow::GetOutlineEntry( size_t nLevel, size_t nE
  
  bool ScOutlineWindow::IsHidden( SCCOLROW nColRowIndex ) const
  {
@@ -3104,9 +3187,11 @@
  }
  
  bool ScOutlineWindow::IsFirstVisible( SCCOLROW nColRowIndex ) const
---- sc/source/ui/view/output.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/view/output.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -387,8 +387,9 @@ void ScOutputData::DrawGrid( BOOL bGrid,
+diff --git sc/source/ui/view/output.cxx sc/source/ui/view/output.cxx
+index c24c68a..2f503e2 100644
+--- sc/source/ui/view/output.cxx
++++ sc/source/ui/view/output.cxx
+@@ -384,8 +384,9 @@ void ScOutputData::DrawGrid( BOOL bGrid, BOOL bPage )
                  {
                      BYTE nDocFl = pDoc->GetColFlags( nCol, nTab );
                      nBreak = pDoc->HasColBreak(nCol, nTab);
@@ -3117,7 +3202,7 @@
                          break;
                      ++nCol;
                  }
-@@ -507,7 +508,7 @@ void ScOutputData::DrawGrid( BOOL bGrid,
+@@ -504,7 +505,7 @@ void ScOutputData::DrawGrid( BOOL bGrid, BOOL bPage )
                  for (SCROW i = nYplus1; i <= MAXROW; ++i)
                  {
                      nBreak = pDoc->HasRowBreak(i, nTab);
@@ -3126,7 +3211,7 @@
                      if (nBreak || !bHidden)
                          break;
                  }
-@@ -654,7 +655,7 @@ void ScOutputData::FindRotated()
+@@ -651,7 +652,7 @@ void ScOutputData::FindRotated()
                  const ScPatternAttr* pPattern = pInfo->pPatternAttr;
                  const SfxItemSet* pCondSet = pInfo->pConditionSet;
  
@@ -3135,9 +3220,11 @@
                  {
                      pPattern = pDoc->GetPattern( nX, nY, nTab );
                      pCondSet = pDoc->GetCondResult( nX, nY, nTab );
---- sc/source/ui/view/output2.cxx.old	2010-03-03 16:59:16.000000000 +0100
-+++ sc/source/ui/view/output2.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -825,7 +825,7 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL
+diff --git sc/source/ui/view/output2.cxx sc/source/ui/view/output2.cxx
+index 915e3f0..0974a62 100644
+--- sc/source/ui/view/output2.cxx
++++ sc/source/ui/view/output2.cxx
+@@ -822,7 +822,7 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL nX, SCROW nY, SCSIZE nArrY,
      while (bHOver)				// nY konstant
      {
          --rOverX;
@@ -3146,7 +3233,7 @@
          if ( !bDoMerge && !bHidden )
              return FALSE;
  
-@@ -849,7 +849,7 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL
+@@ -846,7 +846,7 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL nX, SCROW nY, SCSIZE nArrY,
      while (bVOver)
      {
          --rOverY;
@@ -3155,7 +3242,7 @@
          if ( !bDoMerge && !bHidden )
              return FALSE;
  
-@@ -857,8 +857,8 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL
+@@ -854,8 +854,8 @@ BOOL ScOutputData::GetMergeOrigin( SCCOL nX, SCROW nY, SCSIZE nArrY,
              --nArrY;						// lokale Kopie !
  
          if (rOverX >= nX1 && rOverY >= nY1 &&
@@ -3166,7 +3253,7 @@
              pRowInfo[nArrY].nRowNo == rOverY)
          {
  //			rVirtPosY -= pRowInfo[nArrY].nHeight;
-@@ -2142,7 +2142,7 @@ void ScOutputData::DrawEdit(BOOL bPixelT
+@@ -2139,7 +2139,7 @@ void ScOutputData::DrawEdit(BOOL bPixelToLogic)
                      if (bDoCell)
                      {
                          if ( nCellY == nY && nCellX >= nX1 && nCellX <= nX2 &&
@@ -3175,9 +3262,11 @@
                          {
                              CellInfo& rCellInfo = pThisRowInfo->pCellInfo[nCellX+1];
                              pPattern = rCellInfo.pPatternAttr;
---- sc/source/ui/view/prevloc.cxx.old	2009-10-07 15:06:15.000000000 +0200
-+++ sc/source/ui/view/prevloc.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -602,11 +602,11 @@ void ScPreviewLocationData::GetTableInfo
+diff --git sc/source/ui/view/prevloc.cxx sc/source/ui/view/prevloc.cxx
+index 93fea33..7b2b179 100644
+--- sc/source/ui/view/prevloc.cxx
++++ sc/source/ui/view/prevloc.cxx
+@@ -599,11 +599,11 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
          ++nColCount;
      if ( bHasRepCols )
          for ( nCol=nRepeatColStart; nCol<=nRepeatColEnd; nCol++ )
@@ -3191,7 +3280,7 @@
                  ++nColCount;
  
      if ( nColCount > 0 )
-@@ -623,7 +623,7 @@ void ScPreviewLocationData::GetTableInfo
+@@ -620,7 +620,7 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
          {
              long nPosX = 0;
              for ( nCol=nRepeatColStart; nCol<=nRepeatColEnd; nCol++ )
@@ -3200,7 +3289,7 @@
                  {
                      USHORT nDocW = pDoc->GetColWidth( nCol, nTab );
                      long nNextX = nPosX + (long) (nDocW * nScaleX);
-@@ -642,7 +642,7 @@ void ScPreviewLocationData::GetTableInfo
+@@ -639,7 +639,7 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
          {
              long nPosX = 0;
              for ( nCol=nMainColStart; nCol<=nMainColEnd; nCol++ )
@@ -3209,7 +3298,7 @@
                  {
                      USHORT nDocW = pDoc->GetColWidth( nCol, nTab );
                      long nNextX = nPosX + (long) (nDocW * nScaleX);
-@@ -670,11 +670,9 @@ void ScPreviewLocationData::GetTableInfo
+@@ -667,11 +667,9 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
      if ( bHasHeaderRow )
          ++nRowCount;
      if ( bHasRepRows )
@@ -3223,7 +3312,7 @@
  
      if ( nRowCount > 0 )
      {
-@@ -689,58 +687,44 @@ void ScPreviewLocationData::GetTableInfo
+@@ -686,58 +684,44 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
          if ( bHasRepRows )
          {
              long nPosY = 0;
@@ -3314,9 +3403,11 @@
          }
          rInfo.SetRowInfo( nRowCount, pRowInfo );
      }
---- sc/source/ui/view/printfun.cxx.old	2010-03-03 16:59:18.000000000 +0100
-+++ sc/source/ui/view/printfun.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -3073,9 +3073,10 @@ void ScPrintFunc::CalcPages()				// bere
+diff --git sc/source/ui/view/printfun.cxx sc/source/ui/view/printfun.cxx
+index eaa3067..bf19156 100644
+--- sc/source/ui/view/printfun.cxx
++++ sc/source/ui/view/printfun.cxx
+@@ -3070,9 +3070,10 @@ void ScPrintFunc::CalcPages()				// berechnet aPageRect und Seiten aus nZoom
      nTotalY = 0;
  
      BOOL bVisCol = FALSE;
@@ -3328,7 +3419,7 @@
          bool bPageBreak = (pDoc->HasColBreak(i, nPrintTab) & BREAK_PAGE);
          if ( i>nStartCol && bVisCol && bPageBreak )
          {
-@@ -3083,7 +3084,7 @@ void ScPrintFunc::CalcPages()				// bere
+@@ -3080,7 +3081,7 @@ void ScPrintFunc::CalcPages()				// berechnet aPageRect und Seiten aus nZoom
              ++nPagesX;
              bVisCol = FALSE;
          }
@@ -3337,7 +3428,7 @@
              bVisCol = TRUE;
      }
      if (bVisCol)	// auch am Ende keine leeren Seiten
-@@ -3094,38 +3095,35 @@ void ScPrintFunc::CalcPages()				// bere
+@@ -3091,38 +3092,35 @@ void ScPrintFunc::CalcPages()				// berechnet aPageRect und Seiten aus nZoom
  
      BOOL bVisRow = FALSE;
      SCROW nPageStartRow = nStartRow;
@@ -3354,14 +3445,7 @@
 -            {
 -                pPageEndY[nTotalY] = j-1;
 -                ++nTotalY;
-+	for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
-+	{
-+		bool bPageBreak = (pDoc->HasRowBreak(nRow, nPrintTab) & BREAK_PAGE);
-+		if (nRow > nStartRow && bVisRow && bPageBreak )
-+		{
-+			pPageEndY[nTotalY] = nRow-1;
-+			++nTotalY;
- 
+-
 -                if ( !aTableParam.bSkipEmpty ||
 -                        !pDoc->IsPrintEmpty( nPrintTab, nStartCol, nPageStartRow, nEndCol, j-1 ) )
 -                {
@@ -3372,6 +3456,22 @@
 -                        lcl_SetHidden( pDoc, nPrintTab, pPageRows[nPagesY], nStartCol, pPageEndX );
 -                    ++nPagesY;
 -                }
+-
+-                nPageStartRow = j;
+-                bVisRow = FALSE;
+-            }
+-            if (!(nFlags & CR_HIDDEN))
+-                bVisRow = TRUE;
+-        }
+-    } while (aIter.NextRange());
++	for (SCROW nRow = nStartRow; nRow <= nEndRow; ++nRow)
++	{
++		bool bPageBreak = (pDoc->HasRowBreak(nRow, nPrintTab) & BREAK_PAGE);
++		if (nRow > nStartRow && bVisRow && bPageBreak )
++		{
++			pPageEndY[nTotalY] = nRow-1;
++			++nTotalY;
++
 +			if ( !aTableParam.bSkipEmpty ||
 +					!pDoc->IsPrintEmpty( nPrintTab, nStartCol, nPageStartRow, nEndCol, nRow-1 ) )
 +			{
@@ -3382,14 +3482,7 @@
 +					lcl_SetHidden( pDoc, nPrintTab, pPageRows[nPagesY], nStartCol, pPageEndX );
 +				++nPagesY;
 +			}
- 
--                nPageStartRow = j;
--                bVisRow = FALSE;
--            }
--            if (!(nFlags & CR_HIDDEN))
--                bVisRow = TRUE;
--        }
--    } while (aIter.NextRange());
++
 +			nPageStartRow = nRow;
 +			bVisRow = FALSE;
 +		}
@@ -3403,9 +3496,11 @@
  
      if (bVisRow)
      {
---- sc/source/ui/view/select.cxx.old	2010-03-03 16:59:15.000000000 +0100
-+++ sc/source/ui/view/select.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -278,12 +278,12 @@ BOOL __EXPORT ScViewFunctionSet::SetCurs
+diff --git sc/source/ui/view/select.cxx sc/source/ui/view/select.cxx
+index ae67dbe..333eeb9 100644
+--- sc/source/ui/view/select.cxx
++++ sc/source/ui/view/select.cxx
+@@ -275,12 +275,12 @@ BOOL __EXPORT ScViewFunctionSet::SetCursorAtPoint( const Point& rPointPixel, BOO
          ScDocument* pDoc = pViewData->GetDocument();
          SCTAB nTab = pViewData->GetTabNo();
          if ( bLeft && !bRightScroll )
@@ -3420,7 +3515,7 @@
                  if (!ValidRow(nPosY))
                      nPosY = -1;
              }
-@@ -479,7 +479,7 @@ BOOL ScViewFunctionSet::SetCursorAtCell(
+@@ -476,7 +476,7 @@ BOOL ScViewFunctionSet::SetCursorAtCell( SCsCOL nPosX, SCsROW nPosY, BOOL bScrol
              {
                  //	#94321# in SetCursorAtPoint hidden columns are skipped.
                  //	They must be skipped here too, or the result will always be the first hidden column.
@@ -3429,7 +3524,7 @@
                  for (SCCOL i=nPosX; i<nStartX; i++)
                      nSizeX += pDoc->GetColWidth( i, nTab );
              }
-@@ -494,8 +494,7 @@ BOOL ScViewFunctionSet::SetCursorAtCell(
+@@ -491,8 +491,7 @@ BOOL ScViewFunctionSet::SetCursorAtCell( SCsCOL nPosX, SCsROW nPosY, BOOL bScrol
                  //	They must be skipped here too, or the result will always be the first hidden row.
                  if (++nPosY < nStartY)
                  {
@@ -3439,9 +3534,11 @@
                      if (!ValidRow(nPosY))
                          nPosY = nStartY;
                  }
---- sc/source/ui/view/tabview.cxx.old	2010-03-03 16:59:15.000000000 +0100
-+++ sc/source/ui/view/tabview.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1441,7 +1441,7 @@ void ScTabView::ScrollX( long nDeltaX, S
+diff --git sc/source/ui/view/tabview.cxx sc/source/ui/view/tabview.cxx
+index 443c7f5..fe7f539 100644
+--- sc/source/ui/view/tabview.cxx
++++ sc/source/ui/view/tabview.cxx
+@@ -1438,7 +1438,7 @@ void ScTabView::ScrollX( long nDeltaX, ScHSplitPos eWhich, BOOL bUpdBars )
      SCsCOL nDir = ( nDeltaX > 0 ) ? 1 : -1;
      ScDocument* pDoc = aViewData.GetDocument();
      SCTAB nTab = aViewData.GetTabNo();
@@ -3450,7 +3547,7 @@
              nNewX+nDir >= 0 && nNewX+nDir <= MAXCOL )
          nNewX = sal::static_int_cast<SCsCOL>( nNewX + nDir );
  
-@@ -1530,7 +1530,7 @@ void ScTabView::ScrollY( long nDeltaY, S
+@@ -1527,7 +1527,7 @@ void ScTabView::ScrollY( long nDeltaY, ScVSplitPos eWhich, BOOL bUpdBars )
      SCsROW nDir = ( nDeltaY > 0 ) ? 1 : -1;
      ScDocument* pDoc = aViewData.GetDocument();
      SCTAB nTab = aViewData.GetTabNo();
@@ -3459,9 +3556,11 @@
              nNewY+nDir >= 0 && nNewY+nDir <= MAXROW )
          nNewY += nDir;
  
---- sc/source/ui/view/tabview2.cxx.old	2010-03-03 16:59:15.000000000 +0100
-+++ sc/source/ui/view/tabview2.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -943,13 +943,13 @@ BOOL lcl_FitsInWindow( double fScaleX, d
+diff --git sc/source/ui/view/tabview2.cxx sc/source/ui/view/tabview2.cxx
+index 2b80271..0913775 100644
+--- sc/source/ui/view/tabview2.cxx
++++ sc/source/ui/view/tabview2.cxx
+@@ -940,13 +940,13 @@ BOOL lcl_FitsInWindow( double fScaleX, double fScaleY, USHORT nZoom,
      }
  
      long nBlockY = 0;
@@ -3480,7 +3579,7 @@
          if (nRowTwips)
          {
              nBlockY += (long)(nRowTwips * fScaleY);
-@@ -957,10 +957,9 @@ BOOL lcl_FitsInWindow( double fScaleX, d
+@@ -954,10 +954,9 @@ BOOL lcl_FitsInWindow( double fScaleX, double fScaleY, USHORT nZoom,
                  return FALSE;
          }
      }
@@ -3493,9 +3592,11 @@
          if (nRowTwips)
          {
              nBlockY += (long)(nRowTwips * fScaleY);
---- sc/source/ui/view/tabview3.cxx.old	2010-03-03 16:59:17.000000000 +0100
-+++ sc/source/ui/view/tabview3.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -994,8 +994,8 @@ void ScTabView::MoveCursorRel( SCsCOL nM
+diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
+index 1d98302..b8f7410 100644
+--- sc/source/ui/view/tabview3.cxx
++++ sc/source/ui/view/tabview3.cxx
+@@ -991,8 +991,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
          BOOL bHFlip = FALSE;
          do
          {
@@ -3506,7 +3607,7 @@
              if (bSkipProtected && !bSkipCell)
                  bSkipCell = pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
              if (bSkipUnprotected && !bSkipCell)
-@@ -1036,8 +1036,8 @@ void ScTabView::MoveCursorRel( SCsCOL nM
+@@ -1033,8 +1033,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
          BOOL bVFlip = FALSE;
          do
          {
@@ -3517,7 +3618,7 @@
              if (bSkipProtected && !bSkipCell)
                  bSkipCell = pDoc->HasAttrib(nCurX, nCurY, nTab, nCurX, nCurY, nTab, HASATTR_PROTECTED);
              if (bSkipUnprotected && !bSkipCell)
-@@ -2060,17 +2060,18 @@ void ScTabView::PaintRangeFinder( long n
+@@ -2057,17 +2057,18 @@ void ScTabView::PaintRangeFinder( long nNumber )
                              BOOL bHiddenEdge = FALSE;
                              SCROW nTmp;
                              ScDocument* pDoc = aViewData.GetDocument();
@@ -3539,7 +3640,7 @@
                              if (!ValidRow(nTmp))
                                  nTmp = 0;
                              if (nTmp < nRow1)
-@@ -2078,7 +2079,7 @@ void ScTabView::PaintRangeFinder( long n
+@@ -2075,7 +2076,7 @@ void ScTabView::PaintRangeFinder( long nNumber )
                                  nRow1 = nTmp;
                                  bHiddenEdge = TRUE;
                              }
@@ -3548,9 +3649,11 @@
                              if (!ValidRow(nTmp))
                                  nTmp = MAXROW;
                              if (nTmp > nRow2)
---- sc/source/ui/view/viewdata.cxx.old	2010-03-03 16:59:15.000000000 +0100
-+++ sc/source/ui/view/viewdata.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1603,7 +1603,7 @@ Point ScViewData::GetScrPos( SCCOL nWher
+diff --git sc/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
+index 4c79092..1883e25 100644
+--- sc/source/ui/view/viewdata.cxx
++++ sc/source/ui/view/viewdata.cxx
+@@ -1600,7 +1600,7 @@ Point ScViewData::GetScrPos( SCCOL nWhereX, SCROW nWhereY, ScSplitPos eWhich,
                  else if ( nY < MAXROW )
                  {
                      // skip multiple hidden rows (forward only for now)
@@ -3559,7 +3662,7 @@
                      if ( nNext > MAXROW )
                          nY = MAXROW;
                      else
-@@ -1715,7 +1715,7 @@ SCROW ScViewData::CellsAtY( SCsROW nPosY
+@@ -1712,7 +1712,7 @@ SCROW ScViewData::CellsAtY( SCsROW nPosY, SCsROW nDir, ScVSplitPos eWhichY, USHO
              else if ( nDir == 1 && nRowNo < MAXROW )
              {
                  // skip multiple hidden rows (forward only for now)
@@ -3568,7 +3671,7 @@
                  if ( nNext > MAXROW )
                  {
                      // same behavior as without the optimization: set bOut with nY=MAXROW+1
-@@ -1778,11 +1778,19 @@ BOOL ScViewData::GetMergeSizePixel( SCCO
+@@ -1775,11 +1775,19 @@ BOOL ScViewData::GetMergeSizePixel( SCCOL nX, SCROW nY, long& rSizeXPix, long& r
          for (SCCOL i=0; i<nCountX; i++)
              nOutWidth += ToPixel( pDoc->GetColWidth(nX+i,nTabNo), nPPTX );
          SCROW nCountY = pMerge->GetRowMerge();
@@ -3593,9 +3696,11 @@
  
          rSizeXPix = nOutWidth;
          rSizeYPix = nOutHeight;
---- sc/source/ui/view/viewfun3.cxx.old	2009-10-08 16:17:09.000000000 +0200
-+++ sc/source/ui/view/viewfun3.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -1726,10 +1726,10 @@ BOOL ScViewFunc::MoveBlockTo( const ScRa
+diff --git sc/source/ui/view/viewfun3.cxx sc/source/ui/view/viewfun3.cxx
+index f5b634a..e3b44ac 100644
+--- sc/source/ui/view/viewfun3.cxx
++++ sc/source/ui/view/viewfun3.cxx
+@@ -1723,10 +1723,10 @@ BOOL ScViewFunc::MoveBlockTo( const ScRange& rSource, const ScAddress& rDestPos,
          BOOL bIncludeFiltered = bCut;
          if ( !bIncludeFiltered )
          {
@@ -3610,9 +3715,11 @@
              if ( nPastedCount == 0 )
                  nPastedCount = 1;
              aDestEnd.SetRow( rDestPos.Row() + nPastedCount - 1 );
---- sc/source/ui/view/viewfunc.cxx.old	2010-03-03 16:59:11.000000000 +0100
-+++ sc/source/ui/view/viewfunc.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -2218,28 +2218,19 @@ void ScViewFunc::SetWidthOrHeight( BOOL
+diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
+index 293502b..0b93d9a 100644
+--- sc/source/ui/view/viewfunc.cxx
++++ sc/source/ui/view/viewfunc.cxx
+@@ -2215,28 +2215,19 @@ void ScViewFunc::SetWidthOrHeight( BOOL bWidth, SCCOLROW nRangeCnt, SCCOLROW* pR
                          {
                              //	fuer alle eingeblendeten CR_MANUALSIZE loeschen,
                              //	dann SetOptimalHeight mit bShrink = FALSE
@@ -3651,7 +3758,7 @@
                          }
  
                          double nPPTX = GetViewData()->GetPPTX();
-@@ -2281,8 +2272,7 @@ void ScViewFunc::SetWidthOrHeight( BOOL
+@@ -2278,8 +2269,7 @@ void ScViewFunc::SetWidthOrHeight( BOOL bWidth, SCCOLROW nRangeCnt, SCCOLROW* pR
                  {
                      for (SCCOL nCol=static_cast<SCCOL>(nStartNo); nCol<=static_cast<SCCOL>(nEndNo); nCol++)
                      {
@@ -3661,9 +3768,11 @@
                          {
                              USHORT nThisSize = nSizeTwips;
  
---- sc/source/ui/view/viewutil.cxx.old	2009-10-08 16:17:09.000000000 +0200
-+++ sc/source/ui/view/viewutil.cxx	2010-03-03 16:59:19.000000000 +0100
-@@ -264,20 +264,19 @@ void ScViewUtil::UnmarkFiltered( ScMarkD
+diff --git sc/source/ui/view/viewutil.cxx sc/source/ui/view/viewutil.cxx
+index 821894d..2b66d8c 100644
+--- sc/source/ui/view/viewutil.cxx
++++ sc/source/ui/view/viewutil.cxx
+@@ -261,20 +261,19 @@ void ScViewUtil::UnmarkFiltered( ScMarkData& rMark, ScDocument* pDoc )
      for (SCTAB nTab=0; nTab<nTabCount; nTab++)
          if ( rMark.GetTableSelect(nTab ) )
          {
@@ -3690,7 +3799,7 @@
          }
  
      if ( bChanged && !rMark.HasAnyMultiMarks() )
-@@ -288,13 +287,19 @@ void ScViewUtil::UnmarkFiltered( ScMarkD
+@@ -285,13 +284,19 @@ void ScViewUtil::UnmarkFiltered( ScMarkData& rMark, ScDocument* pDoc )
  
  
  // static
@@ -3711,7 +3820,7 @@
      // FillArrayForCondition() usually is the fastest to determine such a set
      // in one pass, even if the array isn't used but the last element.
      SCROW* pArr = new SCROW[nRows];
-@@ -303,19 +308,19 @@ bool ScViewUtil::FitToUnfilteredRows( Sc
+@@ -300,19 +305,19 @@ bool ScViewUtil::FitToUnfilteredRows( ScRange & rRange, const ScDocument * pDoc,
      if (nCount)
          rRange.aEnd.SetRow( pArr[nCount-1]);
      delete [] pArr;


More information about the ooo-build-commit mailing list