summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2017-12-05 22:01:26 +0100
committerJulien Nabet <serval2412@yahoo.fr>2017-12-07 08:40:41 +0100
commitb4e51cdaf859dfffee0561c51a72eb5c73ee23f4 (patch)
treee11f427a4f7dae6042d707943da331f5e81faf4a
parent7a0fefa3818e9218f3f871ce3156df39ee444703 (diff)
tdf#114228: fix crash when deleting sheet in specific case
1. Create a brand new ods file 2. Select L12 (so cursor is obviously on sheet1 L12) 3. Create a brand new sheet (and cursor is on sheet2 A1) 4. Delete sheet2 It crashes with gtk3, see https://bugs.documentfoundation.org/attachment.cgi?id=138199 As indicated in https://bugs.documentfoundation.org/show_bug.cgi?id=114228#c5 the tab number is wrong Reporting cursor management later in ScTabView::SetTabNo prevents from the crash Change-Id: Iea307267d2cdcf1c01f7e72f45b6a68aeef26fa1 Reviewed-on: https://gerrit.libreoffice.org/45976 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
-rw-r--r--sc/source/ui/view/tabview3.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 84c945552677..6e93f5f5756a 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1817,8 +1817,6 @@ void ScTabView::SetTabNo( SCTAB nTab, bool bNew, bool bExtendSelection, bool bSa
// UpdateShow before SetCursor, so that UpdateAutoFillMark finds the correct
// window (is called from SetCursor)
UpdateShow();
- aViewData.ResetOldCursor();
- SetCursor( aViewData.GetCurX(), aViewData.GetCurY(), true );
SfxBindings& rBindings = aViewData.GetBindings();
ScMarkData& rMark = aViewData.GetMarkData();
@@ -1874,6 +1872,9 @@ void ScTabView::SetTabNo( SCTAB nTab, bool bNew, bool bExtendSelection, bool bSa
UpdateVisibleRange();
aViewData.GetViewShell()->WindowChanged(); // if the active window has changed
+ aViewData.ResetOldCursor();
+ SetCursor( aViewData.GetCurX(), aViewData.GetCurY(), true );
+
if ( !bUnoRefDialog )
aViewData.GetViewShell()->DisconnectAllClients(); // important for floating frames
else