Check window when IsOutOfScreen() is called. 19/281219/2 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/20221103.165512 accepted/tizen/7.0/unified/20221110.063618 accepted/tizen/7.0/unified/20221117.014415 accepted/tizen/7.0/unified/hotfix/20221116.110257 accepted/tizen/unified/20220922.062047 accepted/tizen/unified/20220922.062726 accepted/tizen/unified/20221110.181512 accepted/tizen/unified/20221130.171051 accepted/tizen/unified/20221207.171519 accepted/tizen/unified/20221216.024025 tizen_7.0_m2_release
authortscholb <scholb.kim@samsung.com>
Wed, 14 Sep 2022 08:41:55 +0000 (17:41 +0900)
committertscholb <scholb.kim@samsung.com>
Wed, 14 Sep 2022 08:55:47 +0000 (17:55 +0900)
Change-Id: I7a49f93a884a755e5a78a0ba9a08819e421afef0

widget_viewer_dali/internal/widget_view/widget_view_impl.cpp

index 9c9591fd0cc4cfb40d49695f6fcd7d8a58b07d05..8ce7e9141d18ad7bc3f87a6adb4feba6aa4f1b62 100644 (file)
@@ -345,24 +345,32 @@ bool WidgetView::IsOutOfScreen()
   }
 
   Window window = DevelWindow::Get( self );
-  RenderTaskList taskList = window.GetRenderTaskList();
-  RenderTask task = taskList.GetTask( 0u );
-  Vector3 cameraPosition = task.GetCameraActor().GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector3 worldPosition = self.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 size = self.GetProperty( Actor::Property::SIZE ).Get< Vector2 >();
-  Vector3 worldScale = self.GetProperty( Actor::Property::WORLD_SCALE ).Get< Vector3 >();
+  if( window )
+  {
+    RenderTaskList taskList = window.GetRenderTaskList();
+    RenderTask task = taskList.GetTask( 0u );
+    Vector3 cameraPosition = task.GetCameraActor().GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
+    Vector3 worldPosition = self.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
+    Vector2 size = self.GetProperty( Actor::Property::SIZE ).Get< Vector2 >();
+    Vector3 worldScale = self.GetProperty( Actor::Property::WORLD_SCALE ).Get< Vector3 >();
 
-  Vector2 windowSize = window.GetSize();
-  worldPosition -= cameraPosition;
+    Vector2 windowSize = window.GetSize();
+    worldPosition -= cameraPosition;
 
-  Vector2 actorSize = Vector2(size.width*worldScale.x , size.height*worldScale.y);
-  if( worldPosition.x >= (-0.5f)*(actorSize.width + windowSize.width) && worldPosition.x <= (0.5f)*(actorSize.width + windowSize.width) )
-  {
-    if( worldPosition.y >= (-0.5f)*(actorSize.height + windowSize.height) && worldPosition.y <= (0.5f)*(actorSize.height + windowSize.height) )
+    Vector2 actorSize = Vector2(size.width*worldScale.x , size.height*worldScale.y);
+    if( worldPosition.x >= (-0.5f)*(actorSize.width + windowSize.width) && worldPosition.x <= (0.5f)*(actorSize.width + windowSize.width) )
     {
-      return false;
+      if( worldPosition.y >= (-0.5f)*(actorSize.height + windowSize.height) && worldPosition.y <= (0.5f)*(actorSize.height + windowSize.height) )
+      {
+        return false;
+      }
     }
   }
+  else
+  {
+    DALI_LOG_ERROR("Window handle is empty \n");
+  }
+
   return true;
 }