From b33715c00ea3a20e219d80845e72a2b37ba6c8cc Mon Sep 17 00:00:00 2001 From: Szymon Kłos Date: Sun, 15 Jan 2017 20:20:26 +0100 Subject: tdf#102139 : prevent the notebookbar from switching to empty tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I0b463fef98d7597c9b7f22ee84701519a0f2b575 Reviewed-on: https://gerrit.libreoffice.org/33100 Reviewed-by: Szymon Kłos Tested-by: Szymon Kłos --- vcl/source/control/tabctrl.cxx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'vcl') diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx index ee31141867f6..740628bf5570 100644 --- a/vcl/source/control/tabctrl.cxx +++ b/vcl/source/control/tabctrl.cxx @@ -2288,6 +2288,39 @@ void NotebookbarTabControl::SetCurPageId( sal_uInt16 nPageId ) TabControl::SetCurPageId( nPageId ); } +void NotebookbarTabControl::ImplActivateTabPage( bool bNext ) +{ + sal_uInt16 nCurPos = GetPagePos( GetCurPageId() ); + + if ( bNext && nCurPos + 1 < GetPageCount() ) + { + sal_uInt16 nOldPos = nCurPos; + nCurPos++; + + ImplTabItem* pItem = &mpTabCtrlData->maItemList[nCurPos]; + while ( !pItem->mbEnabled && nCurPos + 1 < GetPageCount()) + { + nCurPos++; + pItem = &mpTabCtrlData->maItemList[nCurPos]; + } + + if ( !pItem->mbEnabled ) + nCurPos = nOldPos; + } + else if ( !bNext && nCurPos ) + { + nCurPos--; + ImplTabItem* pItem = &mpTabCtrlData->maItemList[nCurPos]; + while ( nCurPos && !pItem->mbEnabled ) + { + nCurPos--; + pItem = &mpTabCtrlData->maItemList[nCurPos]; + } + } + + SelectTabPage( TabControl::GetPageId( nCurPos ) ); +} + sal_uInt16 NotebookbarTabControl::GetHeaderHeight() { return m_nHeaderHeight; -- cgit