(cdata->buffer_ref.buffer->type != E_COMP_WL_BUFFER_TYPE_NATIVE))
break;
+ if (cdata->sub.below_list || cdata->sub.below_list_pending)
+ {
+ if (!e_comp_wl_video_client_has(ec))
+ break;
+ }
+
ow = cdata->width_from_buffer;
oh = cdata->height_from_buffer;
vw = cdata->width_from_viewport;
Eina_List *l_o, *ll_o;
Eina_List *l_l, *ll_l;
tdm_output_conn_status conn_status;
+ E_Comp_Wl_Client_Data *cdata;
EINA_SAFETY_ON_NULL_RETURN(ec);
EINA_SAFETY_ON_NULL_RETURN(hwc);
+ cdata = (E_Comp_Wl_Client_Data*)ec->comp_data;
+ EINA_SAFETY_ON_NULL_RETURN(cdata);
+
EINA_LIST_FOREACH_SAFE(hwc->hwc_outputs, l_o, ll_o, hwc_output)
{
if (!hwc_output) continue;
_e_comp_hwc_output_display_client_reserved_memory(hwc_output, hwc_layer, ec);
else
_e_comp_hwc_output_display_client(hwc_output, hwc_layer, ec);
+
+ if (cdata->sub.below_list || cdata->sub.below_list_pending)
+ {
+ if (!e_comp_wl_video_client_has(ec))
+ e_comp_nocomp_end(__FUNCTION__);
+ }
}
else
ERR("no primary layer");
return ec;
}
-static Eina_Bool
-_e_comp_wl_video_client_has(E_Client *ec)
+E_API Eina_Bool
+e_comp_wl_video_client_has(E_Client *ec)
{
E_Client *subc;
Eina_List *l;
+ if (!ec) return EINA_FALSE;
+ if (!ec->comp_data) return EINA_FALSE;
+
if (ec->comp_data->video_client)
return EINA_TRUE;
EINA_LIST_FOREACH(ec->comp_data->sub.below_list_pending, l, subc)
- if (_e_comp_wl_video_client_has(subc))
+ if (e_comp_wl_video_client_has(subc))
return EINA_TRUE;
EINA_LIST_FOREACH(ec->comp_data->sub.below_list, l, subc)
- if (_e_comp_wl_video_client_has(subc))
+ if (e_comp_wl_video_client_has(subc))
return EINA_TRUE;
return EINA_FALSE;
evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_RESIZE,
_e_comp_wl_subsurface_bg_evas_cb_resize, ec);
- has_video_client = _e_comp_wl_video_client_has(ec);
+ has_video_client = e_comp_wl_video_client_has(ec);
ELOGF("COMP", " |bg_rectangle|video_client:%d", NULL, ec, has_video_client);
/* set alpha only if SW path */
E_API void e_comp_wl_shell_surface_ready(E_Client *ec);
+E_API Eina_Bool e_comp_wl_video_client_has(E_Client *ec);
+
E_API extern int E_EVENT_WAYLAND_GLOBAL_ADD;
# endif