diff options
Diffstat (limited to 'src/lib/elementary/efl_ui_widget.c')
-rw-r--r-- | src/lib/elementary/efl_ui_widget.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 997d7819b9..660f22a6e1 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -6058,7 +6058,19 @@ _efl_ui_widget_efl_ui_view_model_set(Eo *obj, if (ev.current == pd->properties.model) efl_event_callback_call(obj, EFL_UI_VIEW_EVENT_MODEL_CHANGED, &ev); - if (pd->properties.model) _efl_ui_widget_model_update(obj, pd); + if (pd->properties.model) + { + Eina_Value *value; + _efl_ui_widget_model_update(obj, pd); + value = efl_model_property_get(pd->properties.model, "avoid_recalc"); + if (eina_value_type_get(value) != EINA_VALUE_TYPE_ERROR) + { + Eina_Bool avoid_recalc; + + if (eina_value_bool_convert(value, &avoid_recalc) && avoid_recalc) + efl_canvas_group_need_recalculate_set(obj, EINA_FALSE); + } + } efl_unref(ev.current); efl_unref(ev.previous); |