allow setWatchedItem( nullptr )
This commit is contained in:
parent
3426e78ed4
commit
aea6f829ae
@ -192,6 +192,9 @@ QskGestureRecognizer::~QskGestureRecognizer()
|
|||||||
|
|
||||||
void QskGestureRecognizer::setWatchedItem( QQuickItem* item )
|
void QskGestureRecognizer::setWatchedItem( QQuickItem* item )
|
||||||
{
|
{
|
||||||
|
if ( m_data->watchedItem )
|
||||||
|
reset();
|
||||||
|
|
||||||
m_data->watchedItem = item;
|
m_data->watchedItem = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,12 +438,18 @@ void QskGestureRecognizer::reject()
|
|||||||
|
|
||||||
reset();
|
reset();
|
||||||
|
|
||||||
|
auto watchedItem = m_data->watchedItem;
|
||||||
|
if ( watchedItem == nullptr )
|
||||||
|
return;
|
||||||
|
|
||||||
|
const auto window = watchedItem->window();
|
||||||
|
if ( window == nullptr )
|
||||||
|
return;
|
||||||
|
|
||||||
m_data->isReplayingEvents = true;
|
m_data->isReplayingEvents = true;
|
||||||
|
|
||||||
const auto window = m_data->watchedItem->window();
|
if ( window->mouseGrabberItem() == watchedItem )
|
||||||
|
watchedItem->ungrabMouse();
|
||||||
if ( window->mouseGrabberItem() == m_data->watchedItem )
|
|
||||||
m_data->watchedItem->ungrabMouse();
|
|
||||||
|
|
||||||
if ( !events.isEmpty() &&
|
if ( !events.isEmpty() &&
|
||||||
( events[ 0 ]->type() == QEvent::MouseButtonPress ) )
|
( events[ 0 ]->type() == QEvent::MouseButtonPress ) )
|
||||||
@ -481,12 +490,15 @@ void QskGestureRecognizer::reset()
|
|||||||
{
|
{
|
||||||
qskTimerTable->stopTimer( this );
|
qskTimerTable->stopTimer( this );
|
||||||
|
|
||||||
m_data->watchedItem->setKeepMouseGrab( false );
|
if ( auto watchedItem = m_data->watchedItem )
|
||||||
|
|
||||||
if ( auto window = m_data->watchedItem->window() )
|
|
||||||
{
|
{
|
||||||
if ( window->mouseGrabberItem() == m_data->watchedItem )
|
watchedItem->setKeepMouseGrab( false );
|
||||||
m_data->watchedItem->ungrabMouse();
|
|
||||||
|
if ( auto window = watchedItem->window() )
|
||||||
|
{
|
||||||
|
if ( window->mouseGrabberItem() == m_data->watchedItem )
|
||||||
|
watchedItem->ungrabMouse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_data->pendingEvents.reset();
|
m_data->pendingEvents.reset();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user