comp object alphs set flag add 96/94796/3
authorSungbae Park <sb34.park@samsung.com>
Tue, 1 Nov 2016 08:23:12 +0000 (17:23 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 3 Nov 2016 02:49:58 +0000 (19:49 -0700)
user_alpha is set by server core source(e_comp_wl.c)
but _e_comp_object_alpha_set function do not consider it.
If you call e_comp_object_alpha_set or not call _e_comp_object_alpha_set function always init alpha setting.
e_comp_object_alpha_set can not be used.
and e_comp_object_alpha_set function used to subsurface relationship in e_comp_wl.c
 - _e_comp_wl_subsurface_check_below_bg_rectangle we had a meeting about 24bit parent and ui child case.
if child position lower then parent, we policy is show parent and child.
 this feature implement is located in _e_comp_wl_subsurface_check_below_bg_rectangle

Signed-off-by: Sungbae Park <sb34.park@samsung.com>
Change-Id: I683739eee59bb3896c75d4360b065d945c9353a5

src/bin/e_comp_object.c

index c96cf82d21ef71c04242b397d6a8df525d391f4e..e086256a6881d6eb990587cdb22d0bb3b7a45e31 100644 (file)
@@ -135,6 +135,8 @@ typedef struct _E_Comp_Object
    Eina_Bool            blanked : 1; //window is rendering blank content (externally composited)
    Eina_Bool            external_content : 1; // e.swallow.content(obj) is set by external evas object
    Eina_Bool            dim_enable : 1;
+   Eina_Bool            user_alpha_set : 1;
+   Eina_Bool            user_alpha : 1;
 } E_Comp_Object;
 
 typedef struct _E_Input_Rect_Data
@@ -459,6 +461,7 @@ _e_comp_object_alpha_set(E_Comp_Object *cw)
      }
 
    if (cw->blanked || cw->ns || cw->ec->shaped) alpha = EINA_TRUE;
+   if (cw->user_alpha_set) alpha = cw->user_alpha;
 
    evas_object_image_alpha_set(cw->obj, alpha);
 }
@@ -4589,6 +4592,9 @@ e_comp_object_alpha_set(Evas_Object *obj, Eina_Bool alpha)
         return;
      }
 
+   cw->user_alpha_set = EINA_TRUE;
+   cw->user_alpha = alpha;
+
    if (alpha == evas_object_image_alpha_get(cw->obj)) return;
 
    evas_object_image_alpha_set(cw->obj, alpha);