jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/tools/erigo.git/commit/?id=ea8a89467a141988647caca87818b8bc916d5fd6

commit ea8a89467a141988647caca87818b8bc916d5fd6
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Mon Nov 9 09:02:39 2015 +0200

    Updater: apply modification to all the registered sessions
    
    and not only to the editor session
---
 src/lib/updater.c | 52 +++++++++++++++++++++-------------------------------
 1 file changed, 21 insertions(+), 31 deletions(-)

diff --git a/src/lib/updater.c b/src/lib/updater.c
index 8c976ed..69c917d 100644
--- a/src/lib/updater.c
+++ b/src/lib/updater.c
@@ -51,6 +51,18 @@ _eo_del_apply(const Eina_List *sessions, Eid *eid)
 }
 
 static void
+_eo_prop_apply(const Eina_List *sessions, Eid *eid, Gui_Widget_Property *prop)
+{
+   const Eina_List *itr;
+   Gui_Session *s;
+   Gui_Widget *wdg = wdg_get(eid);
+   EINA_LIST_FOREACH(sessions, itr, s)
+     {
+        manager_widget_property_add(s, wdg, prop, NULL);
+     }
+}
+
+static void
 _obj_container_update(const Eina_List *sessions, Eid *eid)
 {
    const Eina_List *itr;
@@ -118,38 +130,20 @@ _update_check(void *data EINA_UNUSED)
                                {
                                   _eo_add_apply(sessions, eid);
                                   Eid *parent_container_id = 
wdg_parent_container_eid_get(wdg);
-                                  if (parent_container_id)
-                                    {
-                                       Gui_Widget *cont = 
wdg_get(parent_container_id);
-                                       Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
-                                       
manager_widget_content_unset_all(session, cont, 
wdg_obj_container_class_name_get(cont), NULL);
-                                       manager_widget_content_add(session, 
cont, NULL);
-                                    }
+                                  if (parent_container_id) 
_obj_container_update(sessions, parent_container_id);
                                }
                              break;
                           }
                      case MEMENTO_PROPERTY:
                           {
-                             Gui_Widget_Property *prop = to;
-
-                             if (prop)
-                               {
-                                  Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
-                                  manager_widget_property_add(session, wdg, 
prop, NULL);
-                               }
+                             if (to) _eo_prop_apply(sessions, eid, to);
                              else
                                {
                                   _eo_del_apply(sessions, eid);
                                   _eo_add_apply(sessions, eid);
                                   /* Here separate algorithm for each kind of 
container can be implemented. */
                                   Eid *parent_container_id = 
wdg_parent_container_eid_get(wdg);
-                                  if (parent_container_id)
-                                    {
-                                       Gui_Widget *cont = 
wdg_get(parent_container_id);
-                                       Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
-                                       
manager_widget_content_unset_all(session, cont, 
wdg_obj_container_class_name_get(cont), NULL);
-                                       manager_widget_content_add(session, 
cont, NULL);
-                                    }
+                                  if (parent_container_id) 
_obj_container_update(sessions, parent_container_id);
                                }
                              break;
                           }
@@ -171,18 +165,14 @@ _update_check(void *data EINA_UNUSED)
                                   Eid *parent_eid = wdg_parent_id_get(wdg);
                                   _eo_del_apply(sessions, parent_eid);
                                   _eo_add_apply(sessions, parent_eid);
-                                  break;
                               }
-                             _eo_del_apply(sessions, eid);
-                             _eo_add_apply(sessions, eid);
-                             /* Here separate algorithm for each kind of 
container can be implemented. */
-                             Eid *parent_container_id = 
wdg_parent_container_eid_get(wdg);
-                             if (parent_container_id)
+                             else
                                {
-                                  Gui_Widget *cont = 
wdg_get(parent_container_id);
-                                  Gui_Session *session = (Gui_Session *) 
gui_context_editor_session_get(ctx);
-                                  manager_widget_content_unset_all(session, 
cont, wdg_obj_container_class_name_get(cont), NULL);
-                                  manager_widget_content_add(session, cont, 
NULL);
+                                  _eo_del_apply(sessions, eid);
+                                  _eo_add_apply(sessions, eid);
+                                  /* Here separate algorithm for each kind of 
container can be implemented. */
+                                  Eid *parent_container_id = 
wdg_parent_container_eid_get(wdg);
+                                  if (parent_container_id) 
_obj_container_update(sessions, parent_container_id);
                                }
                              break;
                           }

-- 


Reply via email to