}
static void
-_ctxpopup_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED )
+_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
- Evas_Object *diskselector;
-
- diskselector = elm_object_content_unset(obj);
- if (diskselector) evas_object_del(diskselector);
+ Ctxpopup_Module_Data *ctx_mod;
+ ctx_mod = (Ctxpopup_Module_Data *)data;
+ evas_object_del(obj);
+ ctx_mod->ctxpopup = NULL;
}
static void
snprintf(buf, sizeof(buf), "datetime/%s", elm_object_style_get(obj));
- if (!ctx_mod->ctxpopup)
- {
- ctx_mod->ctxpopup = elm_ctxpopup_add(obj);
- elm_object_style_set(ctx_mod->ctxpopup, buf);
- elm_ctxpopup_horizontal_set(ctx_mod->ctxpopup, EINA_TRUE);
- evas_object_size_hint_weight_set(ctx_mod->ctxpopup, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(ctx_mod->ctxpopup, EVAS_HINT_FILL, 0.5);
- evas_object_smart_callback_add(ctx_mod->ctxpopup, "dismissed",
- _ctxpopup_dismissed_cb, ctx_mod);
- }
-
+ ctx_mod->ctxpopup = elm_ctxpopup_add(obj);
+ elm_object_style_set(ctx_mod->ctxpopup, buf);
+ elm_ctxpopup_horizontal_set(ctx_mod->ctxpopup, EINA_TRUE);
+ evas_object_size_hint_weight_set(ctx_mod->ctxpopup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(ctx_mod->ctxpopup, EVAS_HINT_FILL, 0.5);
+ evas_object_smart_callback_add(ctx_mod->ctxpopup, "dismissed",
+ _ctxpopup_dismissed_cb, ctx_mod);
elm_ctxpopup_hover_parent_set(ctx_mod->ctxpopup, elm_widget_top_get(obj));
- // because of the diskselector behaviour, it is being recreated
diskselector = elm_diskselector_add(elm_widget_top_get(ctx_mod->mod_data.base));
evas_object_smart_callback_add(diskselector, "clicked", _diskselector_cb, NULL);
elm_object_style_set(diskselector, buf);