e_comp_wl: Remove return code by validation of below_obj. 06/199906/2
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 15 Feb 2019 08:56:09 +0000 (17:56 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Fri, 15 Feb 2019 09:55:01 +0000 (18:55 +0900)
_e_comp_wl_subsurface_check_below_bg_rectangle() implementation should
handle the case that below_obj is exist in case of alpha client.

Change-Id: Idc455eb44f3915525275a59946fb6594442bfc4e

src/bin/e_comp_wl.c

index 9604c78..95c33bf 100644 (file)
@@ -3583,13 +3583,11 @@ _e_comp_wl_subsurface_check_below_bg_rectangle(E_Client *ec)
    short layer;
 
    if (!ec || e_object_is_del(E_OBJECT(ec)) || !ec->comp_data) return;
-   if (ec->comp_data->sub.below_obj) return;
    if (ec->comp_data->sub.data)
      {
          E_Client *topmost = e_comp_wl_topmost_parent_get(ec);
          if (!topmost || e_object_is_del(E_OBJECT(topmost)) || !topmost->comp_data) return;
          if (topmost->comp_data->sub.data) return;
-         if (topmost->comp_data->sub.below_obj) return;
          _e_comp_wl_subsurface_check_below_bg_rectangle(topmost);
          return;
      }
@@ -3598,15 +3596,17 @@ _e_comp_wl_subsurface_check_below_bg_rectangle(E_Client *ec)
      {
          if (ec->comp_data->sub.below_obj)
            {
+               ELOGF("COMP", "         |bg_rectangle(%p) delete", ec, ec->comp_data->sub.below_obj);
                evas_object_del(ec->comp_data->sub.below_obj);
                ec->comp_data->sub.below_obj = NULL;
            }
          return;
      }
 
-   if (ec->comp_data->sub.below_list ||
-       ec->comp_data->sub.below_list_pending ||
-       e_comp_wl_video_subsurface_has(ec))
+   if ((!ec->comp_data->sub.below_obj) &&
+       (ec->comp_data->sub.below_list ||
+        ec->comp_data->sub.below_list_pending ||
+        e_comp_wl_video_subsurface_has(ec)))
      {
         /* create a bg rectangle if topmost window is 24 depth window */
         ec->comp_data->sub.below_obj = evas_object_rectangle_add(e_comp->evas);