From: tscholb Date: Wed, 14 Sep 2022 08:41:55 +0000 (+0900) Subject: Check window when IsOutOfScreen() is called. X-Git-Tag: accepted/tizen/unified/20220922.062047^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=56338d3399bb2bca768d10cf03641c8503eb09f4;p=platform%2Fcore%2Fuifw%2Fwidget-viewer-dali.git Check window when IsOutOfScreen() is called. Change-Id: I7a49f93a884a755e5a78a0ba9a08819e421afef0 --- diff --git a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp index 9c9591f..8ce7e91 100644 --- a/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp +++ b/widget_viewer_dali/internal/widget_view/widget_view_impl.cpp @@ -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; }