Kaydet (Commit) e2605252 authored tarafından Pranav Kant's avatar Pranav Kant Kaydeden (comit) pranavk

sc lok: Invalidate the new extended area

Change-Id: I1fa58ca935860ed3c5983f4e6b15c9f7c8feda9b
Reviewed-on: https://gerrit.libreoffice.org/24925Reviewed-by: 's avatarJan Holesovsky <kendy@collabora.com>
Tested-by: 's avatarpranavk <pranavk@collabora.com>
üst 64e24d9b
...@@ -304,15 +304,41 @@ void ScTabView::SetCursor( SCCOL nPosX, SCROW nPosY, bool bNew ) ...@@ -304,15 +304,41 @@ void ScTabView::SetCursor( SCCOL nPosX, SCROW nPosY, bool bNew )
{ {
if (nPosX > aViewData.GetMaxTiledCol() - 10 || nPosY > aViewData.GetMaxTiledRow() - 25) 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) if (nPosX > aViewData.GetMaxTiledCol() - 10)
aViewData.SetMaxTiledCol(std::max(nPosX, aViewData.GetMaxTiledCol()) + 10); aViewData.SetMaxTiledCol(std::max(nPosX, aViewData.GetMaxTiledCol()) + 10);
if (nPosY > aViewData.GetMaxTiledRow() - 25) if (nPosY > aViewData.GetMaxTiledRow() - 25)
aViewData.SetMaxTiledRow(std::max(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) if (pDocSh)
{
pDocSh->libreOfficeKitCallback(LOK_CALLBACK_DOCUMENT_SIZE_CHANGED, ""); 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());
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment