fix pager16 shadow inconssistency

fixes T930
This commit is contained in:
Carsten Haitzler 2014-02-10 12:21:27 +09:00
parent 53cbaf7d80
commit c91840ea54
1 changed files with 23 additions and 9 deletions

View File

@ -269,9 +269,21 @@ _mirror_client_smart_add(Evas_Object *obj)
static void static void
_mirror_client_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission, const char *src) _mirror_client_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission, const char *src)
{ {
edje_object_signal_emit(data, emission, src); Mirror_Border *mb = data;
edje_object_message_signal_process(data);
edje_object_calc_force(data); if (((!strcmp(emission, "e,state,shadow,on")) ||
(!strcmp(emission, "e,state,shadow,off"))) &&
(!strcmp(src, "e")))
{
if (e_client_util_shadow_state_get(mb->m->ec))
edje_object_signal_emit(mb->frame, "e,state,shadow,on", "e");
else
edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e");
}
else
edje_object_signal_emit(mb->frame, emission, src);
edje_object_message_signal_process(mb->frame);
edje_object_calc_force(mb->frame);
} }
static void static void
@ -279,7 +291,7 @@ _mirror_client_smart_del(Evas_Object *obj)
{ {
Mirror_Border *mb = evas_object_smart_data_get(obj); Mirror_Border *mb = evas_object_smart_data_get(obj);
if (mb->m->comp_object && mb->m->ec) if (mb->m->comp_object && mb->m->ec)
e_comp_object_signal_callback_del_full(mb->m->ec->frame, "*", "*", _mirror_client_signal_cb, mb->frame); e_comp_object_signal_callback_del_full(mb->m->ec->frame, "*", "*", _mirror_client_signal_cb, mb);
evas_object_del(mb->frame); evas_object_del(mb->frame);
evas_object_del(mb->mirror); evas_object_del(mb->mirror);
free(mb); free(mb);
@ -446,7 +458,7 @@ _mirror_client_new(Mirror *m)
edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e"); edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e");
if (m->comp_object) if (m->comp_object)
{ {
e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb->frame); e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb);
evas_object_event_callback_add(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m); evas_object_event_callback_add(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
} }
if (mb->m->ec->focused) if (mb->m->ec->focused)
@ -737,9 +749,11 @@ e_deskmirror_mirror_list(Evas_Object *deskmirror)
} }
static void static void
_mirror_copy_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) _mirror_copy_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{ {
e_comp_object_signal_callback_del_full(data, "*", "*", _mirror_client_signal_cb, obj); Mirror_Border *mb = data;
e_comp_object_signal_callback_del_full(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb);
} }
EAPI Evas_Object * EAPI Evas_Object *
@ -764,8 +778,8 @@ e_deskmirror_mirror_copy(Evas_Object *obj)
edje_object_signal_emit(o, "e,state,shadow,off", "e"); edje_object_signal_emit(o, "e,state,shadow,off", "e");
if (mb->m->comp_object) if (mb->m->comp_object)
{ {
e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, o); e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _mirror_copy_del, mb->m->comp_object); evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _mirror_copy_del, mb);
} }
if (mb->m->ec->focused) if (mb->m->ec->focused)
edje_object_signal_emit(o, "e,state,focused", "e"); edje_object_signal_emit(o, "e,state,focused", "e");