sfx2/inc/sfx2/thumbnailview.hxx | 1 sfx2/source/control/thumbnailview.cxx | 53 ++++++++++++++++++++++++++-------- sfx2/source/doc/templatedlg.cxx | 2 - 3 files changed, 44 insertions(+), 12 deletions(-)
New commits: commit f8a3582d4cbcf6a705f724b921e370c739ecee35 Author: Cédric Bosdonnat <cedric.bosdon...@free.fr> Date: Mon Mar 25 17:58:49 2013 +0100 fdo#62659: only select items in ThumbnailView on TabStop Change-Id: I024df8520f0daf2cc2e9e5f041e1ff18cb3689ec diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 400b5ab..49ca699 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -126,6 +126,7 @@ void ThumbnailView::ImplDeleteItems() } mItemList.clear(); + mFilteredItemList.clear(); } void ThumbnailView::ImplInitSettings( bool bFont, bool bForeground, bool bBackground ) @@ -677,17 +678,20 @@ void ThumbnailView::Paint( const Rectangle &aRect) void ThumbnailView::GetFocus() { - // Select the first item if nothing selected - int nSelected = -1; - for (size_t i = 0, n = mItemList.size(); i < n && nSelected == -1; ++i) + if(GETFOCUS_TAB & GetGetFocusFlags()) { - if (mItemList[i]->isSelected()) - nSelected = i; - } + // Select the first item if nothing selected + int nSelected = -1; + for (size_t i = 0, n = mItemList.size(); i < n && nSelected == -1; ++i) + { + if (mItemList[i]->isSelected()) + nSelected = i; + } - if ( nSelected == -1 && mItemList.size( ) > 0 ) - { - SelectItem( 1 ); + if ( nSelected == -1 && mItemList.size( ) > 0 ) + { + SelectItem( 1 ); + } } // Tell the accessible object that we got the focus. commit cc599e914e7ade9f10da460fc1c77ea07454d7ff Author: Cédric Bosdonnat <cedric.bosdon...@free.fr> Date: Mon Mar 25 16:40:37 2013 +0100 fdo#61390: allow arrow keys to show hidden thumbnail items Change-Id: I70924b4c9578122a1c5a5b6c8a67889d6d003a2e diff --git a/sfx2/inc/sfx2/thumbnailview.hxx b/sfx2/inc/sfx2/thumbnailview.hxx index 5058144..c46a854 100644 --- a/sfx2/inc/sfx2/thumbnailview.hxx +++ b/sfx2/inc/sfx2/thumbnailview.hxx @@ -273,6 +273,7 @@ protected: using Window::ImplInit; void CalculateItemPositions (); + void MakeItemVisible( sal_uInt16 nId ); SFX2_DLLPRIVATE void ImplInit(); SFX2_DLLPRIVATE void ImplInitSettings( bool bFont, bool bForeground, bool bBackground ); diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index cc05d70..400b5ab 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -550,13 +550,40 @@ void ThumbnailView::KeyInput( const KeyEvent& rKEvt ) Control::KeyInput( rKEvt ); } - if ( pNext && pNext->isVisible() ) + if ( pNext ) { deselectItems(); SelectItem(pNext->mnId); + MakeItemVisible(pNext->mnId); } } +void ThumbnailView::MakeItemVisible( sal_uInt16 nItemId ) +{ + // Get the item row + size_t nPos = 0; + bool bFound = false; + for ( size_t i = 0; !bFound && i < mFilteredItemList.size(); ++i ) + { + ThumbnailViewItem* pItem = mFilteredItemList[i]; + if ( pItem->mnId == nItemId ) + { + nPos = i; + bFound = true; + } + } + sal_uInt16 nRow = nPos / mnCols; + + // Move the visible rows as little as possible to include that one + if ( nRow < mnFirstLine ) + mnFirstLine = nRow; + else if ( nRow > mnFirstLine + mnVisLines ) + mnFirstLine = nRow - mnVisLines; + + CalculateItemPositions(); + Invalidate(); +} + void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) { if ( rMEvt.IsLeft() ) @@ -700,11 +727,11 @@ void ThumbnailView::LoseFocus() void ThumbnailView::Resize() { + Control::Resize(); CalculateItemPositions(); if ( IsReallyVisible() && IsUpdateMode() ) Invalidate(); - Control::Resize(); } void ThumbnailView::StateChanged( StateChangedType nType ) diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 5f18109..93740f1 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -332,7 +332,7 @@ void SfxTemplateManagerDlg::Resize() Point aViewPos = maView->GetPosPixel(); aViewPos.setY(nToolbarsHeight); aViewPos.setX(0); - Size aThumbSize(aWinSize.getWidth(), maTabControl.GetTabPageSizePixel().getWidth() - aViewPos.getY()); + Size aThumbSize(aWinSize.getWidth(), maTabControl.GetTabPageSizePixel().getHeight() - aViewPos.getY()); maView->SetPosSizePixel(aViewPos, aThumbSize); if (aWinSize.getHeight() < aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER)
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits