Kaydet (Commit) ca343939 authored tarafından Matteo Casalin's avatar Matteo Casalin

Group a common test to avoid unnecessary calculations

üst fe36838f
...@@ -1033,25 +1033,24 @@ sal_Bool ValueSet::ImplScroll( const Point& rPos ) ...@@ -1033,25 +1033,24 @@ sal_Bool ValueSet::ImplScroll( const Point& rPos )
size_t ValueSet::ImplGetItem( const Point& rPos, sal_Bool bMove ) const size_t ValueSet::ImplGetItem( const Point& rPos, sal_Bool bMove ) const
{ {
if ( mpNoneItem ) if ( mpNoneItem && mpNoneItem->maRect.IsInside( rPos ) )
{ {
if ( mpNoneItem->maRect.IsInside( rPos ) )
return VALUESET_ITEM_NONEITEM; return VALUESET_ITEM_NONEITEM;
} }
Point aDefPos; const Rectangle aWinRect( Point(), maVirDev.GetOutputSizePixel() );
Rectangle aWinRect( aDefPos, maVirDev.GetOutputSizePixel() );
size_t nItemCount = mpImpl->mpItemList->size(); if ( aWinRect.IsInside( rPos ) )
for ( size_t i = 0; i < nItemCount; i++ )
{ {
ValueSetItem* pItem = (*mpImpl->mpItemList)[ i ]; // The point is inside the ValueSet window,
// let's find the containing item.
const size_t nItemCount = mpImpl->mpItemList->size();
for ( size_t i = 0; i < nItemCount; ++i )
{
ValueSetItem *const pItem = (*mpImpl->mpItemList)[ i ];
if ( pItem->maRect.IsInside( rPos ) ) if ( pItem->maRect.IsInside( rPos ) )
{ {
if ( aWinRect.IsInside( rPos ) )
return i; return i;
else
return VALUESET_ITEM_NOTFOUND;
} }
} }
...@@ -1060,9 +1059,9 @@ size_t ValueSet::ImplGetItem( const Point& rPos, sal_Bool bMove ) const ...@@ -1060,9 +1059,9 @@ size_t ValueSet::ImplGetItem( const Point& rPos, sal_Bool bMove ) const
// verlassen hat // verlassen hat
if ( bMove && mnSpacing && mnHighItemId ) if ( bMove && mnSpacing && mnHighItemId )
{ {
if ( aWinRect.IsInside( rPos ) )
return GetItemPos( mnHighItemId ); return GetItemPos( mnHighItemId );
} }
}
return VALUESET_ITEM_NOTFOUND; return VALUESET_ITEM_NOTFOUND;
} }
......
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