From 8bc56801af0540c0496c1f8ddd335578a8791017 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Fri, 28 Nov 2014 23:47:02 +0100 Subject: set only valid positions from ScExtTabSettings at ScViewDataTable Some address fields of ScExtTabSettings are initialized invalid and maybe kept invalid, on purpose, so take care of that and use only the valid fields. Change-Id: I37cbf8ff49c6ccf38bfac3e1c8c6492ac7bad61b --- sc/source/ui/view/viewdata.cxx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'sc') diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index b301c9009f73..87aaddc5bc84 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -2491,10 +2491,19 @@ void ScViewData::ReadExtOptions( const ScExtDocOptions& rDocOpt ) bool bVSplit = bFrozen ? (rTabSett.maFreezePos.Row() > 0) : (rTabSett.maSplitPos.Y() > 0); // first visible cell of top-left pane and additional panes - rViewTab.nPosX[ SC_SPLIT_LEFT ] = rTabSett.maFirstVis.Col(); - rViewTab.nPosY[ bVSplit ? SC_SPLIT_TOP : SC_SPLIT_BOTTOM ] = rTabSett.maFirstVis.Row(); - if( bHSplit ) rViewTab.nPosX[ SC_SPLIT_RIGHT ] = rTabSett.maSecondVis.Col(); - if( bVSplit ) rViewTab.nPosY[ SC_SPLIT_BOTTOM ] = rTabSett.maSecondVis.Row(); + if (rTabSett.maFirstVis.IsValid()) + { + rViewTab.nPosX[ SC_SPLIT_LEFT ] = rTabSett.maFirstVis.Col(); + rViewTab.nPosY[ bVSplit ? SC_SPLIT_TOP : SC_SPLIT_BOTTOM ] = rTabSett.maFirstVis.Row(); + } + + if (rTabSett.maSecondVis.IsValid()) + { + if (bHSplit) + rViewTab.nPosX[ SC_SPLIT_RIGHT ] = rTabSett.maSecondVis.Col(); + if (bVSplit) + rViewTab.nPosY[ SC_SPLIT_BOTTOM ] = rTabSett.maSecondVis.Row(); + } // split mode, split and freeze position rViewTab.eHSplitMode = rViewTab.eVSplitMode = SC_SPLIT_NONE; -- cgit