sc/source/ui/view/tabview3.cxx |   28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

New commits:
commit e260525220f9c3eb36383932187a2dc5b80f016d
Author: Pranav Kant <pran...@collabora.com>
Date:   Thu May 12 16:40:04 2016 +0530

    sc lok: Invalidate the new extended area
    
    Change-Id: I1fa58ca935860ed3c5983f4e6b15c9f7c8feda9b
    Reviewed-on: https://gerrit.libreoffice.org/24925
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: pranavk <pran...@collabora.com>

diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 9315d95..1c270f2 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -304,15 +304,41 @@ void ScTabView::SetCursor( SCCOL nPosX, SCROW nPosY, bool 
bNew )
         {
             if (nPosX > aViewData.GetMaxTiledCol() - 10 || nPosY > 
aViewData.GetMaxTiledRow() - 25)
             {
+                ScDocShell* pDocSh = aViewData.GetDocShell();
+                ScModelObj* pModelObj = pDocSh ? 
ScModelObj::getImplementation( pDocSh->GetModel() ) : nullptr;
+                Size aOldSize(0, 0);
+                if (pModelObj)
+                    aOldSize = pModelObj->getDocumentSize();
+
                 if (nPosX > aViewData.GetMaxTiledCol() - 10)
                     aViewData.SetMaxTiledCol(std::max(nPosX, 
aViewData.GetMaxTiledCol()) + 10);
 
                 if (nPosY > aViewData.GetMaxTiledRow() - 25)
                     aViewData.SetMaxTiledRow(std::max(nPosY, 
aViewData.GetMaxTiledRow()) + 25);
 
-                ScDocShell* pDocSh = aViewData.GetDocShell();
+                Size aNewSize(0, 0);
+                if (pModelObj)
+                    aNewSize = pModelObj->getDocumentSize();
+
                 if (pDocSh)
+                {
                     
pDocSh->libreOfficeKitCallback(LOK_CALLBACK_DOCUMENT_SIZE_CHANGED, "");
+
+                    // New area extended to the right of the sheet after last 
column
+                    // including overlapping area with aNewRowArea
+                    Rectangle aNewColArea(aOldSize.getWidth(), 0, 
aNewSize.getWidth(), aNewSize.getHeight());
+                    // New area extended to the bottom of the sheet after last 
row
+                    // excluding overlapping area with aNewColArea
+                    Rectangle aNewRowArea(0, aOldSize.getHeight(), 
aOldSize.getWidth(), aNewSize.getHeight());
+
+                    // Only invalidate if spreadsheet extended to the right
+                    if (aNewColArea.getWidth())
+                        
pDocSh->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, 
aNewColArea.toString().getStr());
+
+                    // Only invalidate if spreadsheet extended to the bottom
+                    if (aNewRowArea.getHeight())
+                        
pDocSh->libreOfficeKitCallback(LOK_CALLBACK_INVALIDATE_TILES, 
aNewRowArea.toString().getStr());
+                }
             }
         }
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to