summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/ecore/efl_composite_model.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/ecore/efl_composite_model.c b/src/lib/ecore/efl_composite_model.c
index 630d08edf7..1cad58ae4d 100644
--- a/src/lib/ecore/efl_composite_model.c
+++ b/src/lib/ecore/efl_composite_model.c
@@ -232,13 +232,25 @@ static Eina_Value *
232_efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd, 232_efl_composite_model_efl_model_property_get(const Eo *obj EINA_UNUSED, Efl_Composite_Model_Data *pd,
233 const char *property) 233 const char *property)
234{ 234{
235 Eina_Value *try;
235 if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX)) 236 if (pd->need_index && !strcmp(property, EFL_COMPOSITE_MODEL_CHILD_INDEX))
236 { 237 {
237 if (pd->set_index) 238 if (pd->set_index)
238 return eina_value_uint_new(pd->index); 239 return eina_value_uint_new(pd->index);
239 return eina_value_error_new(EAGAIN); 240 return eina_value_error_new(EAGAIN);
240 } 241 }
241 return efl_model_property_get(pd->source, property); 242 try = efl_model_property_get(efl_super(obj, EFL_COMPOSITE_MODEL_CLASS), property);
243 if (eina_value_type_get(try) == EINA_VALUE_TYPE_ERROR)
244 {
245 Eina_Error err = EINA_ERROR_NOT_IMPLEMENTED;
246
247 if (eina_value_error_get(try, &err) && (err == EINA_ERROR_NOT_IMPLEMENTED))
248 {
249 eina_value_free(try);
250 return efl_model_property_get(pd->source, property);
251 }
252 }
253 return try;
242} 254}
243 255
244static Eina_Iterator * 256static Eina_Iterator *