+void TouchEventProcessor::OnObservedActorDisconnected( Actor* actor )
+{
+ if ( actor == mLastPrimaryHitActor.GetActor() )
+ {
+ Dali::Actor handle( actor );
+ TouchEvent touchEvent( 0 );
+ touchEvent.points.push_back( TouchPoint( 0, TouchPoint::Interrupted, 0.0f, 0.0f ) );
+ touchEvent.points[0].hitActor = handle;
+
+ Dali::Actor eventConsumer = EmitTouchSignals( handle, touchEvent );
+
+ if ( mLastConsumedActor.GetActor() != eventConsumer )
+ {
+ EmitTouchSignals( Dali::Actor( mLastConsumedActor.GetActor() ), touchEvent );
+ }
+
+ // Do not set mLastPrimaryHitActor to NULL we may be iterating through its observers
+
+ mLastConsumedActor.SetActor( NULL );
+ mLastRenderTask.Reset();
+ }
+}
+