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);
                }
           }

-- 


Reply via email to