/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
UpdateManager& updateManager = tls.GetUpdateManager();
- StagePtr stage = Stage::GetCurrent();
- if( stage )
- {
- PropertyNotificationManager& propertyNotificationManager = stage->GetPropertyNotificationManager();
- PropertyNotificationPtr propertyNotification = new PropertyNotification(updateManager,
- propertyNotificationManager,
- target,
- componentIndex,
- condition);
- return propertyNotification;
- }
- else
- {
- return NULL;
- }
+ PropertyNotificationManager& propertyNotificationManager = tls.GetPropertyNotificationManager();
+ PropertyNotificationPtr propertyNotification = new PropertyNotification(updateManager,
+ propertyNotificationManager,
+ target,
+ componentIndex,
+ condition);
+ return propertyNotification;
}
PropertyNotification::PropertyNotification( UpdateManager& updateManager,
}
}
- // Check if target scene-object already present, and if so create our notification
- // scene-object
- const SceneGraph::PropertyOwner* object = mObject->GetSceneObject();
- if (object)
- {
- CreateSceneObject();
- }
+ // all objects always have scene object
+ CreateSceneObject();
}
// Connect to the property notification manager
// this method can be called from constructor and on stage connection
if( !mPropertyNotification )
{
- // Create a new PropertyNotification, temporarily owned
- SceneGraph::PropertyNotification* propertyNotification = SceneGraph::PropertyNotification::New( *mObject,
- mObjectPropertyIndex,
- mPropertyType,
- mComponentIndex,
- GetImplementation(mCondition).type,
- mRawConditionArgs,
- mNotifyMode );
- // Keep a const pointer to the PropertyNotification.
- mPropertyNotification = propertyNotification;
-
- // Transfer scene object ownership to the update manager through a message
- AddPropertyNotificationMessage( mUpdateManager, propertyNotification );
+ // Create a new PropertyNotification, keep a const pointer to it
+ mPropertyNotification = SceneGraph::PropertyNotification::New( *mObject,
+ mObjectPropertyIndex,
+ mPropertyType,
+ mComponentIndex,
+ GetImplementation( mCondition ).type,
+ mRawConditionArgs,
+ mNotifyMode );
+ OwnerPointer< SceneGraph::PropertyNotification > transferOwnership( const_cast<SceneGraph::PropertyNotification*>( mPropertyNotification ) );
+ AddPropertyNotificationMessage( mUpdateManager, transferOwnership );
}
}