e_comp_object: do not consider subsurface when layer back after animation. 20/78920/1 accepted/tizen/common/20160707.172106 accepted/tizen/ivi/20160707.114109 accepted/tizen/mobile/20160707.114202 accepted/tizen/tv/20160707.114039 accepted/tizen/wearable/20160707.114006 submit/tizen/20160707.102754
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 7 Jul 2016 10:17:23 +0000 (19:17 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Thu, 7 Jul 2016 10:17:23 +0000 (19:17 +0900)
stacking subsurface is handled by e_comp_wl.
If we handle to layer with subsurface, the ordering of layer object will be corrupted.

Change-Id: I9a11980876e5db581c60f74d03f2a210a1df23d5

src/bin/e_comp_object.c

index ec14eb74fc2b3e9d03c7967cbe6879f05fd9e3b0..8af73dc4655b0e5cbd156c256d97a260361e8f3e 100644 (file)
@@ -1284,9 +1284,15 @@ _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer)
                   e_comp_render_queue();
                }
              ec = e_client_above_get(cw->ec);
+             /* skip subsurface: stacking subsurface is handled by e_comp_wl */
+             while ((ec) && (ec->comp_data) && (ec->comp_data->sub.data))
+               ec = e_client_above_get(ec);
              if (ec && (evas_object_layer_get(ec->frame) != evas_object_layer_get(obj)))
                {
                   ec = e_client_below_get(cw->ec);
+                  /* skip subsurface: stacking subsurface is handled by e_comp_wl */
+                  while ((ec) && (ec->comp_data) && (ec->comp_data->sub.data))
+                    ec = e_client_below_get(ec);
                   if (ec && (evas_object_layer_get(ec->frame) == evas_object_layer_get(cw->smart_obj)))
                     {
                        evas_object_stack_above(obj, ec->frame);