rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=82d97702876597130b6ecc74b36185e4f5fc257d

commit 82d97702876597130b6ecc74b36185e4f5fc257d
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Tue Sep 20 15:38:06 2016 +0300

    groupview_calc: unset proxy if part was already deleted and RM require more 
work
    
    Flow:
    1. Deleted part from UI and workspace
    2. Cleaning up dependencies in Resource Manager calls edje edit unset funcs
    3. edje edit unset force workspace to be recalculated
    4. recalculation of other parts which are not edje-edit-unset yet leads to 
SIGSEV
    
    In here, on step 4 we need to ignore that, if we can't find a part but part 
uses
    it (edje edit get returns such info), then just ignore it and do nothing.
    
    @fix
---
 src/bin/ui/workspace/groupview_calc.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/bin/ui/workspace/groupview_calc.c 
b/src/bin/ui/workspace/groupview_calc.c
index d4d8c8f..69f0093 100644
--- a/src/bin/ui/workspace/groupview_calc.c
+++ b/src/bin/ui/workspace/groupview_calc.c
@@ -996,16 +996,18 @@ _proxy_param_update(Groupview_Part *gp, Evas_Object 
*edit_obj)
      {
         elm_object_signal_emit(gp->layout, "border,default", "eflete");
         source = _parts_list_find(sd->parts, proxy_source);
-        evas_object_image_source_set(gp->proxy_part, source->proxy_part);
-        evas_object_image_source_clip_set(gp->proxy_part, false);
-        evas_object_image_source_visible_set (gp->proxy_part, false);
-        _image_proxy_common_param_update(gp->proxy_part, gp, edit_obj);
-     }
-   else
-     {
-        evas_object_image_source_set(gp->proxy_part, NULL);
-        elm_object_signal_emit(gp->layout, "border,proxy", "eflete");
+        if (source)
+          {
+             evas_object_image_source_set(gp->proxy_part, source->proxy_part);
+             evas_object_image_source_clip_set(gp->proxy_part, false);
+             evas_object_image_source_visible_set (gp->proxy_part, false);
+             _image_proxy_common_param_update(gp->proxy_part, gp, edit_obj);
+             return; /* no need in unsetting */
+          }
      }
+   /* if part was deleted or no proxy set yet we go in this code line */
+   evas_object_image_source_set(gp->proxy_part, NULL);
+   elm_object_signal_emit(gp->layout, "border,proxy", "eflete");
 }
 
 static void

-- 


Reply via email to