Reset the pointer of the event callback
Change-Id: I50467c7d9bae08e5dc3c062d21eccca226fd3f7e
Adaptor::Get().RegisterProcessor( *this );
}
Adaptor::Get().RegisterProcessor( *this );
}
+ mEventHandlers.push_back( &handler );
+
- mEventTrigger = std::unique_ptr< EventThreadCallback >( new EventThreadCallback( MakeCallback( this, &TizenVectorAnimationManager::OnEventTriggered ) ) );
- }
+ Dali::Mutex::ScopedLock lock( mMutex );
- mEventHandlers.push_back( &handler );
+ if( !mEventTrigger )
+ {
+ mEventTrigger = std::unique_ptr< EventThreadCallback >( new EventThreadCallback( MakeCallback( this, &TizenVectorAnimationManager::OnEventTriggered ) ) );
+ }
+ }
if( iter != mEventHandlers.end() )
{
mEventHandlers.erase( iter );
if( iter != mEventHandlers.end() )
{
mEventHandlers.erase( iter );
- if( mEventHandlers.empty() )
- {
- if( Adaptor::IsAvailable() )
- {
- Adaptor::Get().UnregisterProcessor( *this );
- }
+ bool releaseEventTrigger = false;
- mEventTrigger.release();
+ if( mEventHandlers.empty() )
+ {
+ if( Adaptor::IsAvailable() )
+ {
+ Adaptor::Get().UnregisterProcessor( *this );
+
+ releaseEventTrigger = true;
{
mTriggeredHandlers.erase( triggeredHandler );
}
{
mTriggeredHandlers.erase( triggeredHandler );
}
+
+ if( releaseEventTrigger )
+ {
+ mEventTrigger.reset();
+ }
{
mTriggeredHandlers.push_back( &handler );
{
mTriggeredHandlers.push_back( &handler );
- mEventTrigger->Trigger();
+ if( mEventTrigger )
+ {
+ mEventTrigger->Trigger();
+ }