- elm_panel has a property named hidden which stores open/close status.
- This is updated when:
- bring_in animation is done(anim_stop_cb).
- mouse_up on panel.
- API is called. (elm_panel_toggle, elm_panel_hidden_set)
- In case 3, API changes hidden, and starts bring_in animation which will call anim_stop_cb() which will update hidden again.
- If bring_in animation is canceled (eg: sizing_eval), anim_stop_cb will be called and calculate hidden status which will not guarantee updated hidden state by APIs.
- Call any APIs which will call elm_layout_sizing_eval(panel) right after calling elm_panel_toggle()/elm_panel_hidden_set().
- Delete content of panel during "toggled" cb.
In my opinion, this case is not desirable enough to be exposed to elementary_test.
The problem case in here happens when elm_layout_sizing_eval() is called during toggle animation.
This will stop toggle animation(bring_in) and skip the animation by calling pos_set.
In normal case, it is hard to change panel during toggle animation.
Well, the purpose of a test that doesn't happen normally is so that when a developer later modify this code without having an idea of that said case, he can get it detected by just going through the example. Otherwise expect your bug to happen again in the future and have to fix it again.