From c91840ea54a398f56a513a9d02608f323d7e8f65 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 10 Feb 2014 12:21:27 +0900 Subject: [PATCH] fix pager16 shadow inconssistency fixes T930 --- src/bin/e_deskmirror.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c index 9a1b6c325..ec9da2743 100644 --- a/src/bin/e_deskmirror.c +++ b/src/bin/e_deskmirror.c @@ -269,9 +269,21 @@ _mirror_client_smart_add(Evas_Object *obj) static void _mirror_client_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission, const char *src) { - edje_object_signal_emit(data, emission, src); - edje_object_message_signal_process(data); - edje_object_calc_force(data); + Mirror_Border *mb = 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 @@ -279,7 +291,7 @@ _mirror_client_smart_del(Evas_Object *obj) { Mirror_Border *mb = evas_object_smart_data_get(obj); 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->mirror); free(mb); @@ -446,7 +458,7 @@ _mirror_client_new(Mirror *m) edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e"); 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); } if (mb->m->ec->focused) @@ -737,9 +749,11 @@ e_deskmirror_mirror_list(Evas_Object *deskmirror) } 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 * @@ -764,8 +778,8 @@ e_deskmirror_mirror_copy(Evas_Object *obj) edje_object_signal_emit(o, "e,state,shadow,off", "e"); if (mb->m->comp_object) { - e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, o); - evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _mirror_copy_del, mb->m->comp_object); + 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); } if (mb->m->ec->focused) edje_object_signal_emit(o, "e,state,focused", "e");