gesture also used for closing

This commit is contained in:
Uwe Rathmann 2023-10-17 16:37:25 +02:00
parent 930cb321a1
commit 79924aeebe
1 changed files with 24 additions and 18 deletions

View File

@ -196,13 +196,17 @@ namespace
bool isAcceptedPos( const QPointF& pos ) const override
{
auto drawer = qobject_cast< const QskDrawer* >( targetItem() );
const auto dragMargin = drawer->dragMargin();
if ( dragMargin <= 0.0 )
if ( drawer->isFading() )
return false;
auto rect = qskItemRect( watchedItem() );
if ( !drawer->isOpen() )
{
const auto dragMargin = drawer->dragMargin();
if ( dragMargin <= 0.0 )
return false;
switch( drawer->edge() )
{
case Qt::LeftEdge:
@ -221,6 +225,7 @@ namespace
rect.setTop( rect.bottom() - dragMargin );
break;
}
}
return rect.contains( pos );
}
@ -324,8 +329,9 @@ void QskDrawer::gestureEvent( QskGestureEvent* event )
const auto gesture = static_cast< const QskPanGesture* >( event->gesture().get() );
if ( gesture->state() == QskGesture::Finished )
{
if ( qskCheckDirection( m_data->edge, gesture ) )
open();
const auto forwards = qskCheckDirection( m_data->edge, gesture );
if ( forwards != isOpen() )
setOpen( forwards );
}
return;