Merge "Removed some junk from Makefile.am" into devel/master
[platform/core/uifw/dali-core.git] / dali / internal / event / events / hit-test-algorithm-impl.cpp
index da51fb7..604f71e 100644 (file)
@@ -218,14 +218,19 @@ HitActor HitTestWithinLayer( Actor& actor,
             hit.distance = distance;
             hit.depth = actor.GetHierarchyDepth() * Dali::Layer::TREE_DEPTH_MULTIPLIER;
 
-            // Is this actor an Image Actor or contains a renderer?
-            if ( ImageActor* imageActor = dynamic_cast< ImageActor* >( &actor ) )
+            if ( actor.GetRendererCount() > 0 )
             {
-              hit.depth += imageActor->GetDepthIndex();
-            }
-            else if ( actor.GetRendererCount() )
-            {
-              hit.depth += actor.GetRendererAt( 0 ).GetDepthIndex();
+              //Get renderer with maximum depth
+              int rendererMaxDepth(actor.GetRendererAt( 0 ).Get()->GetDepthIndex());
+              for( unsigned int i(1); i<actor.GetRendererCount(); ++i)
+              {
+                int depth = actor.GetRendererAt( i ).Get()->GetDepthIndex();
+                if( depth > rendererMaxDepth )
+                {
+                  rendererMaxDepth = depth;
+                }
+              }
+              hit.depth += rendererMaxDepth;
             }
           }
         }
@@ -632,7 +637,7 @@ bool HitTest( Stage& stage, RenderTask& renderTask, const Vector2& screenCoordin
   bool wasHit( false );
   Results hitTestResults;
 
-  const Vector< RenderTaskList::Exclusive >& exclusives = Stage::GetCurrent()->GetRenderTaskList().GetExclusivesList();
+  const Vector< RenderTaskList::Exclusive >& exclusives = stage.GetRenderTaskList().GetExclusivesList();
   HitTestFunctionWrapper hitTestFunctionWrapper( func );
   if ( HitTestRenderTask( exclusives, stage, stage.GetLayerList(), renderTask, screenCoordinates, hitTestResults, hitTestFunctionWrapper ) )
   {