e_comp_object: rearrange e_client stack when evas object layer is changed 02/116902/1 accepted/tizen/3.0/common/20170303.085606 accepted/tizen/3.0/ivi/20170302.222418 accepted/tizen/3.0/mobile/20170302.222221 accepted/tizen/3.0/tv/20170302.222335 accepted/tizen/3.0/wearable/20170302.222358 accepted/tizen/ivi/20170302.120207 accepted/tizen/mobile/20170302.120023 accepted/tizen/tv/20170302.120107 accepted/tizen/wearable/20170302.120130 submit/tizen/20170302.041501 submit/tizen_3.0/20170302.041421
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 2 Mar 2017 02:30:29 +0000 (11:30 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 2 Mar 2017 02:30:29 +0000 (11:30 +0900)
Change-Id: I4818f6dcb34ae4f7318a0549a836d196baaf5747

src/bin/e_comp_object.c

index 29f2d1595be3fa7d6b2af76f2fdd2131cf600735..e2687f05664cf4e8966d47f28849e44278491adb 100644 (file)
@@ -1697,7 +1697,12 @@ static void
 _e_comp_intercept_stack_above(void *data, Evas_Object *obj, Evas_Object *above)
 {
    EINA_SAFETY_ON_TRUE_RETURN(obj == above);
-   if (evas_object_below_get(obj) == above) return;
+
+   if (evas_object_below_get(obj) == above)
+     {
+        e_comp_object_layer_update(obj, above, NULL);
+        return;
+     }
 
    TRACE_DS_BEGIN(COMP:INTERCEPT STACK ABOVE);
    _e_comp_intercept_stack_helper(data, above, evas_object_stack_above);
@@ -1710,7 +1715,11 @@ static void
 _e_comp_intercept_stack_below(void *data, Evas_Object *obj, Evas_Object *below)
 {
    EINA_SAFETY_ON_TRUE_RETURN(obj == below);
-   if (evas_object_above_get(obj) == below) return;
+   if (evas_object_above_get(obj) == below)
+     {
+        e_comp_object_layer_update(obj, NULL, below);
+        return;
+     }
 
    TRACE_DS_BEGIN(COMP:INTERCEPT STACK BELOW);
    _e_comp_intercept_stack_helper(data, below, evas_object_stack_below);
@@ -1765,7 +1774,11 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
    if ((cw->ec->layer_block) || (cw->ec->layer_pending))
      {
         if (cw->ec->layer_pending)
-          e_comp_object_layer_update(obj, NULL, NULL);
+          {
+             int obj_layer = evas_object_layer_get(obj);
+             if (cw->ec->layer != obj_layer)
+               e_comp_object_layer_update(obj, NULL, NULL);
+          }
 
         evas_object_raise(obj);
         goto end;