This smells like a bug. Oh yeah it's a bug!
Sorry I don't have time at the moment to dig this out but you can also
raise ticket for bug reporting.
http://trac.enlightenment.org/e/report
Anyhow, thank you for reporting.

Btw, I have one comment on your code.
After you do elm_shutdown() you're calling evas_object_del(parent).
But you don't need to.
Because
1) you already called elm_win_autodel_set(parent, EINA_TRUE); so
parent will be automatically deleted when it gets "delete,request"
signal.
2) you already did elm_shutdown() so evas objects are already freed
from the memory.

Thanks.

Daniel Juyung Seo (SeoZ)


On Thu, Jan 12, 2012 at 7:35 PM, Guilherme Silveira <[email protected]> wrote:
> Hi All,
>
> I think I found a bug when I changing button's style. The problem is when I
> change style on clicked callback of button, i wrote a little test to
> simulate that..
> In my test I have a timer (1 sec) that it change style of a button (obj1),
> and another button (obj2) that it only change when i click it!
> The example is not big, and I'm going to paste here..
>
> O problem is when I change style throght clicked event, label and icon
> becomes empty..
>
> -- code
>
> #include <stdio.h>
> #include <glib.h>
> #include <Elementary.h>
>
> static Ecore_Timer *test = NULL;
> static Eina_Bool style1 = EINA_TRUE;
> static Eina_Bool style2 = EINA_TRUE;
>
> static Eina_Bool
> _change_style1(void *data)
> {
>    Evas_Object *obj = (Evas_Object *) data;
>
>    if (style1 == EINA_TRUE) {
>        elm_object_style_set(obj, "anchor");
>    } else {
>        elm_object_style_set(obj, "default");
>    }
>    style1 = !style1;
>
>    return EINA_TRUE;
> }
>
> static void
> _change_style2(void *data, Evas_Object *obj, void *event_info)
> {
>    if (style2 == EINA_TRUE) {
>        elm_object_style_set(obj, "anchor");
>    } else {
>        elm_object_style_set(obj, "default");
>    }
>    style2 = !style2;
> }
>
> EAPI int
> elm_main(int argc, char **argv)
> {
>    Evas_Object *parent;
>    Evas_Object *obj1, *obj2;
>
>    parent = elm_win_add(NULL, "tip05-gui", ELM_WIN_BASIC);
>    if (!parent) goto out;
>    evas_object_resize(parent, 350, 150);
>    evas_object_show(parent);
>    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
>    elm_win_autodel_set(parent, EINA_TRUE);
>
>    obj1 = elm_button_add(parent);
>    evas_object_resize(obj1, 100, 50);
>    evas_object_move(obj1, 50, 50);
>    elm_object_text_set(obj1, "Obj 1");
>    evas_object_show(obj1);
>
>    obj2 = elm_button_add(parent);
>    evas_object_resize(obj2, 100, 50);
>    evas_object_move(obj2, 200, 50);
>    elm_object_text_set(obj2, "Obj 2");
>    evas_object_show(obj2);
>
>    test = ecore_timer_add(1.0, _change_style1, obj2);
>    evas_object_smart_callback_add(obj1, "clicked", _change_style2, NULL);
>
>    elm_run();
>    elm_shutdown();
>
> out:
>    evas_object_del(parent);
>
>    return 0;
> }
> ELM_MAIN()
>
>
> Regards,
>
> --
> Guilherme Silveira
> E-mail: [email protected]
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Mar 27 - Feb 2
> Save $400 by Jan. 27
> Register now!
> http://p.sf.net/sfu/rsa-sfdev2dev2
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to