don't interrupt the shelf show animation, leaving out a half-shown shelf

SVN revision: 29930
This commit is contained in:
Viktor Kojouharov 2007-05-10 08:49:14 +00:00
parent 83d9ac06f5
commit be1b8a833a
2 changed files with 10 additions and 4 deletions

View File

@ -285,6 +285,7 @@ e_shelf_toggle(E_Shelf *es, int show)
E_OBJECT_CHECK(es); E_OBJECT_CHECK(es);
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
es->interrupted = -1;
if ((show) && (es->hidden)) if ((show) && (es->hidden))
{ {
es->hidden = 0; es->hidden = 0;
@ -306,10 +307,10 @@ e_shelf_toggle(E_Shelf *es, int show)
} }
else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && (es->cfg->autohide)) else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && (es->cfg->autohide))
{ {
es->hidden = 1;
edje_object_signal_emit(es->o_base, "e,state,hidden", "e"); edje_object_signal_emit(es->o_base, "e,state,hidden", "e");
if (es->instant_delay >= 0.0) if (es->instant_delay >= 0.0)
{ {
es->hidden = 1;
if (!es->instant_timer) if (!es->instant_timer)
es->instant_timer = ecore_timer_add(es->instant_delay, _e_shelf_cb_instant_hide_timer, es); es->instant_timer = ecore_timer_add(es->instant_delay, _e_shelf_cb_instant_hide_timer, es);
} }
@ -317,9 +318,10 @@ e_shelf_toggle(E_Shelf *es, int show)
{ {
if (es->hide_animator) if (es->hide_animator)
{ {
ecore_animator_del(es->hide_animator); es->interrupted = show;
es->hide_animator = NULL; return;
} }
es->hidden = 1;
if (es->hide_timer) ecore_timer_del(es->hide_timer); if (es->hide_timer) ecore_timer_del(es->hide_timer);
es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, _e_shelf_cb_hide_animator_timer, es); es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, _e_shelf_cb_hide_animator_timer, es);
} }
@ -1385,7 +1387,10 @@ _e_shelf_cb_hide_animator(void *data)
end: end:
es->hide_animator = NULL; es->hide_animator = NULL;
_e_shelf_toggle_border_fix(es); if (es->interrupted > -1)
e_shelf_toggle(es, es->interrupted);
else
_e_shelf_toggle_border_fix(es);
return 0; return 0;
} }

View File

@ -39,6 +39,7 @@ struct _E_Shelf
int hide_step; int hide_step;
int hidden_state_size; int hidden_state_size;
int hide_origin; int hide_origin;
int interrupted;
float instant_delay; float instant_delay;
Ecore_Timer *instant_timer; Ecore_Timer *instant_timer;
}; };