This commit is contained in:
Uwe Rathmann 2023-05-15 12:38:50 +02:00
parent defb193387
commit a0df814121
1 changed files with 16 additions and 6 deletions

View File

@ -207,17 +207,27 @@ QskMenuSkinlet::~QskMenuSkinlet() = default;
QRectF QskMenuSkinlet::cursorRect( QRectF QskMenuSkinlet::cursorRect(
const QskSkinnable* skinnable, const QRectF& contentsRect, int index ) const const QskSkinnable* skinnable, const QRectF& contentsRect, int index ) const
{ {
// TODO using Q = QskMenu;
const auto count = sampleCount( skinnable, QskMenu::Segment );
auto rect = sampleRect( skinnable, contentsRect, const auto menu = static_cast< const QskMenu* >( skinnable );
QskMenu::Segment, qBound( 0, index, count - 1 ) ); const auto actions = menu->actions();
QRectF rect;
if ( index < 0 ) if ( index < 0 )
{
rect = sampleRect( skinnable, contentsRect, Q::Segment, 0 );
rect.setBottom( rect.top() ); rect.setBottom( rect.top() );
}
if ( index >= count ) else if ( index >= actions.count() )
{
rect = sampleRect( skinnable, contentsRect, Q::Segment, actions.count() - 1 );
rect.setTop( rect.bottom() ); rect.setTop( rect.bottom() );
}
else
{
rect = sampleRect( skinnable, contentsRect, Q::Segment, actions[index] );
}
return rect; return rect;
} }