static void OnSurfaceRemoved( const char *appid, const char *instance_id, const int pid, void *data )
{
- Dali::WidgetView::Internal::WidgetView* widgetView = static_cast< Dali::WidgetView::Internal::WidgetView* >( data );
-
- if( widgetView && !widgetView->IsWidgetFaulted() )
- {
- widgetView->CloseRemoteSurface();
- }
}
} // unnamed namespace
mPausedManually( false ),
mWindowVisible( true ),
mPreviewEnable( true ),
- mKeepWidgetSize(false)
+ mKeepWidgetSize(false),
+ mIsReadyToRender(false)
{
}
mPausedManually( false ),
mWindowVisible( true ),
mPreviewEnable( true ),
- mKeepWidgetSize(false)
+ mKeepWidgetSize(false),
+ mIsReadyToRender(false)
{
}
Dali::WidgetView::WidgetView handle( GetOwner() );
mWidgetAddedSignal.Emit( handle );
+ // Renderer is created by WidgetView
+ mIsReadyToRender = true;
+
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::CreateWidgetRenderer: Widget image is added. [%p]\n", this );
}
void WidgetView::RemoveWidgetRenderer()
{
- if( mRenderer )
+ if(mIsReadyToRender)
{
- Self().RemoveRenderer( mRenderer );
+ if( mRenderer )
+ {
+ Self().RemoveRenderer( mRenderer );
- ShowRetryState( true );
+ ShowRetryState( true );
- Dali::WidgetView::WidgetView handle( GetOwner() );
- mWidgetDeletedSignal.Emit( handle );
+ Dali::WidgetView::WidgetView handle( GetOwner() );
+ mWidgetDeletedSignal.Emit( handle );
+
+ mIsReadyToRender = false;
+ }
}
DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::RemoveWidgetRenderer: Widget image is removed. [%p]\n", this );
}
case WIDGET_INSTANCE_EVENT_FAULT:
{
+ mResizeRequired = true;
+ RemoveWidgetRenderer();
mWidgetFaultedSignal.Emit( handle );
CloseRemoteSurface();
break;
{
}
-bool WidgetView::IsWidgetRenderer()
+bool WidgetView::IsReadyToRender()
{
- return ( mRenderer )? true: false;
+ return mIsReadyToRender;
}
void WidgetView::UpdateImageSource( tbm_surface_h source )
void WidgetView::UpdateBuffer( struct tizen_remote_surface *surface, struct wl_buffer *buffer, int32_t fd)
{
- if( !IsWidgetRenderer() )
+ if( !IsReadyToRender() )
{
tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
bool IsPermanentDelete();
/**
- * @brief Checks Widget Renderer exist
+ * @brief Checks Widget is ready to render
*/
- bool IsWidgetRenderer();
+ bool IsReadyToRender();
/**
* @brief Updates image source when buffer is updated
bool mWindowVisible; ///< Check whether window is visible or not
bool mPreviewEnable; ///< Check whether preview is enable or not
bool mKeepWidgetSize; ///< Check whether widget instance keep it's size or not
+ bool mIsReadyToRender; ///< Check whether widget is ready to render or not
Dali::Property::Map mEffectPropertyMap; ///< Shader for effect
// Notification for property change confirmation