check + radio - fix sizing evals and emits on content set

this should fix T261
This commit is contained in:
Carsten Haitzler 2013-11-17 11:46:52 +09:00
parent f1b88b0f68
commit a59f0d83ec
2 changed files with 10 additions and 2 deletions

View File

@ -67,12 +67,14 @@ _activate(Evas_Object *obj)
static void
_icon_signal_emit(Evas_Object *obj)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
char buf[64];
snprintf(buf, sizeof(buf), "elm,state,icon,%s",
elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
elm_layout_signal_emit(obj, buf, "elm");
edje_object_message_signal_process(wd->resize_obj);
}
/* FIXME: replicated from elm_layout just because check's icon spot
@ -92,6 +94,7 @@ _elm_check_smart_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
_icon_signal_emit(obj);
if (ret) *ret = EINA_TRUE;
eo_do(obj, elm_obj_layout_sizing_eval());
}
static void
@ -127,6 +130,7 @@ _elm_check_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
_icon_signal_emit(obj);
if (ret) *ret = EINA_TRUE;
eo_do(obj, elm_obj_layout_sizing_eval());
}
static void
@ -192,7 +196,7 @@ _elm_check_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
* we can changed the theme API */
_icon_signal_emit(obj);
elm_layout_sizing_eval(obj);
eo_do(obj, elm_obj_layout_sizing_eval());
if (ret) *ret = EINA_TRUE;
}

View File

@ -100,12 +100,14 @@ _activate(Evas_Object *obj)
static void
_icon_signal_emit(Evas_Object *obj)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
char buf[64];
snprintf(buf, sizeof(buf), "elm,state,icon,%s",
elm_layout_content_get(obj, "icon") ? "visible" : "hidden");
elm_layout_signal_emit(obj, buf, "elm");
edje_object_message_signal_process(wd->resize_obj);
}
/* FIXME: replicated from elm_layout just because radio's icon spot
@ -125,6 +127,7 @@ _elm_radio_smart_sub_object_del(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
_icon_signal_emit(obj);
if (ret) *ret = EINA_TRUE;
eo_do(obj, elm_obj_layout_sizing_eval());
}
/* FIXME: replicated from elm_layout just because radio's icon spot
@ -144,6 +147,7 @@ _elm_radio_smart_content_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
_icon_signal_emit(obj);
if (ret) *ret = EINA_TRUE;
eo_do(obj, elm_obj_layout_sizing_eval());
}
static void
@ -197,7 +201,7 @@ _elm_radio_smart_theme(Eo *obj, void *_pd, va_list *list)
* whenever we can changed the theme API */
_icon_signal_emit(obj);
elm_layout_sizing_eval(obj);
eo_do(obj, elm_obj_layout_sizing_eval());
if (ret) *ret = EINA_TRUE;
}