raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=147bc7a6daf5203b5d7592b74726a6bc6e926f6e
commit 147bc7a6daf5203b5d7592b74726a6bc6e926f6e Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Tue Nov 7 16:16:33 2017 +0900 e comp object - patch volume update case for propagating state signals complete f161edc3f3f13feb57ea118de506c2f0e8903fae with missing update case @feature --- src/bin/e_comp_object.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 2468e689d..92a66020d 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3489,6 +3489,43 @@ e_comp_object_frame_icon_update(Evas_Object *obj) E_FREE_FUNC(cw->frame_icon, evas_object_del); } +static void +_e_comp_object_volume_update(Evas_Object *obj) +{ + API_ENTRY; + + if (cw->ec->focused) + e_client_volume_object_emit(cw->ec, "e,state,focused", "e"); + else + e_client_volume_object_emit(cw->ec, "e,state,unfocused", "e"); + if (cw->ec->urgent) + e_client_volume_object_emit(cw->ec, "e,state,urgent", "e"); + else + e_client_volume_object_emit(cw->ec, "e,state,not_urgent", "e"); + if (cw->ec->shaded) + e_client_volume_object_emit(cw->ec, "e,state,shaded", "e"); + if (cw->ec->sticky) + e_client_volume_object_emit(cw->ec, "e,state,sticky", "e"); + if (cw->ec->hung) + e_client_volume_object_emit(cw->ec, "e,state,hung", "e"); + /* visibility must always be enabled for re_manage clients to prevent + * pop-in animations every time the user sees a persistent client again; + * applying visibility for iconic clients prevents the client from getting + * stuck as hidden + */ + if (cw->visible || cw->ec->iconic || cw->ec->re_manage) + { + if ((cw->w > 0) && (cw->h > 0)) + e_client_volume_object_emit(cw->ec, "e,state,visible", "e"); + } + else + e_client_volume_object_emit(cw->ec, "e,state,hidden", "e"); + if (e_comp_object_frame_allowed(cw->smart_obj)) + e_client_volume_object_emit(cw->ec, "e,state,focus,enabled", "e"); + else + e_client_volume_object_emit(cw->ec, "e,state,focus,disabled", "e"); +} + E_API void e_comp_object_frame_volume_update(Evas_Object *obj) { @@ -3504,6 +3541,7 @@ e_comp_object_frame_volume_update(Evas_Object *obj) cw->frame_volume = e_client_volume_object_add(cw->ec, e_comp->evas); edje_object_part_swallow(cw->frame_object, "e.swallow.volume", cw->frame_volume); + _e_comp_object_volume_update(obj); evas_object_show(cw->frame_volume); } } --
