_e_client_free(E_Client *ec)
{
E_Comp *comp = e_comp_get();
+ E_View_Client *view_client;
e_comp_ec_list_lock();
E_Input_Thread_Request_EClient_Data ec_data;
memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data));
- e_comp_object_redirected_set(ec->frame, 0);
- e_comp_object_render_update_del(ec->frame);
+ view_client = e_client_view_get(ec);
+ if (view_client)
+ {
+ e_view_client_redirected_set(view_client, EINA_FALSE);
+ e_view_client_render_update_del(view_client);
+ e_view_destroy(e_view_client_view_get(view_client));
+ }
E_OBJECT(ec)->references++;
eina_stringshare_replace(&ec->icccm.window_role, NULL);
e_client_netwm_name_set(ec, NULL);
- if (PRI(ec)->view_client)
- e_view_destroy(e_view_client_view_get(PRI(ec)->view_client));
-
#ifdef CLIENT_DEL_STACK_ISSUE
e_client_hook_call(E_CLIENT_HOOK_FREE, ec);
#endif // CLIENT_DEL_STACK_ISSUE
E_Comp *comp = e_comp_get();
E_Client *child;
E_Pixmap_Type type;
+ E_View_Client *view_client;
E_Input_Thread_Request_EClient_Data ec_data;
memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data));
if (type < E_PIXMAP_TYPE_MAX)
eina_hash_del_by_key(clients_hash[type], &ec->pixmap);
comp->clients = eina_list_remove(comp->clients, ec);
- e_comp_object_render_update_del(ec->frame);
+
+ view_client = e_client_view_get(ec);
+ e_view_client_render_update_del(view_client);
+
e_comp_post_update_purge(ec);
if (e_pixmap_free(ec->pixmap))
e_pixmap_client_set(ec->pixmap, NULL);
Eina_Bool res = EINA_FALSE;
Eina_List *list = NULL, *l;
Eina_Rectangle *data;
+ E_View_Client *view_client;
EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE);
e_client_geometry_get(ec, &x, &y, &w, &h);
- e_comp_object_input_rect_get(ec->frame, &list);
+ view_client = e_client_view_get(ec);
+ e_view_client_input_rect_get(view_client, &list);
if (list)
{
EINA_LIST_FOREACH(list, l, data)
{
E_Zone *zone;
E_Client *ec = NULL, *cec;
+ E_View_Client *view_client;
E_COMP_ZONE_REVERSE_FOREACH(zone)
E_ZONE_CLIENT_REVERSE_FOREACH(zone, cec)
int ir_x, ir_y, ir_w, ir_h;
e_client_geometry_get(cec, &cx, &cy, &cw, &ch);
- e_comp_object_input_rect_get(cec->frame, &list);
+
+ view_client = e_client_view_get(cec);
+ e_view_client_input_rect_get(view_client, &list);
if (list)
{
EINA_LIST_FREE(list, rect)
}
static E_Map *
-_e_client_transform_core_map_new(Evas_Object *obj,
+_e_client_transform_core_map_new(E_View_Client *view_client,
E_Util_Transform_Rect_Vertex *vertices,
E_Util_Transform *transform,
Eina_Bool direct_render)
{
E_Map *map;
+ E_View *view;
int i;
int x, y;
double u, v;
map = e_map_new_with_direct_render(direct_render);
EINA_SAFETY_ON_NULL_RETURN_VAL(map, NULL);
- e_map_util_points_populate_from_object_full(map, obj, 0);
+ view = e_view_client_view_get(view_client);
+ e_map_util_points_populate_from_view_full(map, view, 0);
e_map_util_points_color_set(map, 255, 255, 255, 255);
for (i = 0 ; i < 4 ; ++i)
static void
_e_client_transform_core_vertices_apply_with_zoom(E_Client *ec,
- Evas_Object *obj,
E_Util_Transform_Rect_Vertex *vertices,
E_Util_Transform *transform,
E_Util_Transform_Zoom zoom)
{
E_Map *map = NULL, *current_map = NULL;
+ E_View_Client *view_client;
+ E_View *view;
- if (!obj) return;
+ view_client = e_client_view_get(ec);
+ if (!view_client) return;
if (vertices)
{
if (!ec->transform_core.update_lock)
{
- map = _e_client_transform_core_map_new(obj, vertices, transform,
+ map = _e_client_transform_core_map_new(view_client, vertices, transform,
ec->transform_core.direct_render);
EINA_SAFETY_ON_NULL_RETURN(map);
e_map_util_zoom(map, zoom.zoom_x, zoom.zoom_y, zoom.cx, zoom.cy);
- e_comp_object_map_set(obj, map);
+ e_view_client_map_set(view_client, map);
}
- current_map = e_comp_object_map_get(obj);
+ current_map = e_view_client_map_get(view_client);
if ((ec->transform_core.activate) && (current_map))
- e_comp_object_map_enable_set(obj, EINA_TRUE);
+ e_view_client_map_enable_set(view_client, EINA_TRUE);
else
- e_comp_object_map_enable_set(obj, EINA_FALSE);
+ e_view_client_map_enable_set(view_client, EINA_FALSE);
if (map) e_map_free(map);
if (current_map) e_map_free(current_map);
}
else
- evas_object_map_enable_set(obj, EINA_FALSE);
+ {
+ view = e_view_client_view_get(view_client);
+ e_view_map_enable_set(view, EINA_FALSE);
+ }
}
static void
_e_client_transform_core_vertices_apply(E_Client *ec,
- Evas_Object *obj,
E_Util_Transform_Rect_Vertex *vertices,
E_Util_Transform *transform)
{
E_Map *map = NULL, *current_map = NULL;
+ E_View_Client *view_client;
+ E_View *view;
- if (!obj) return;
+ view_client = e_client_view_get(ec);
+ if (!view_client) return;
if (vertices)
{
if (!ec->transform_core.update_lock)
{
- map = _e_client_transform_core_map_new(obj, vertices, transform,
+ map = _e_client_transform_core_map_new(view_client, vertices, transform,
ec->transform_core.direct_render);
EINA_SAFETY_ON_NULL_RETURN(map);
- e_comp_object_map_set(obj, map);
+ e_view_client_map_set(view_client, map);
}
- current_map = e_comp_object_map_get(obj);
+ current_map = e_view_client_map_get(view_client);
if ((ec->transform_core.activate) && (current_map))
- e_comp_object_map_enable_set(obj, EINA_TRUE);
+ e_view_client_map_enable_set(view_client, EINA_TRUE);
else
- e_comp_object_map_enable_set(obj, EINA_FALSE);
+ e_view_client_map_enable_set(view_client, EINA_FALSE);
if (map) e_map_free(map);
if (current_map) e_map_free(current_map);
}
else
- evas_object_map_enable_set(obj, EINA_FALSE);
+ {
+ view = e_view_client_view_get(view_client);
+ e_view_map_enable_set(view, EINA_FALSE);
+ }
}
static void
E_API void
e_client_redirected_set(E_Client *ec, Eina_Bool set)
{
+ E_View_Client *view_client;
+
EINA_SAFETY_ON_NULL_RETURN(ec);
if (ec->input_only) return;
set = !!set;
wl_signal_emit(&PRI(ec)->events.unredirect, NULL);
if (!e_client_hook_call(E_CLIENT_HOOK_UNREDIRECT, ec)) return;
}
- e_comp_object_redirected_set(ec->frame, set);
+
+ view_client = e_client_view_get(ec);
+ e_view_client_redirected_set(view_client, set);
+
ec->redirected = !!set;
}
E_API void
e_client_transform_core_update(E_Client *ec)
{
+ E_View_Client *view_client;
+
if (!ec) return;
if (ec->new_client) return;
if (!_e_client_transform_core_check_change(ec)) return;
+ view_client = e_client_view_get(ec);
+
if (ec->transform_core.transform_list || ec->transform_core.parent.enable)
{
E_Util_Transform_Rect source_rect;
{
if (background)
{
- e_comp_object_transform_bg_set(ec->frame, EINA_TRUE);
+ e_view_client_transform_bg_set(view_client, EINA_TRUE);
}
else
{
- e_comp_object_transform_bg_set(ec->frame, EINA_FALSE);
+ e_view_client_transform_bg_set(view_client, EINA_FALSE);
}
ec->transform_core.background = background;
angle %= 90;
if (angle == 0) // when transform angle is 0, 90, 180, 270, 360. then set transp rect
- e_comp_object_transform_transp_set(ec->frame, EINA_TRUE);
+ e_view_client_transform_transp_set(view_client, EINA_TRUE);
else
- e_comp_object_transform_transp_set(ec->frame, EINA_FALSE);
+ e_view_client_transform_transp_set(view_client, EINA_FALSE);
}
else
- e_comp_object_transform_transp_set(ec->frame, EINA_FALSE);
+ e_view_client_transform_transp_set(view_client, EINA_FALSE);
// 3.5 parent matrix multiply
if (ec->transform_core.parent.enable)
if (ec->transform_core.result.transform.use_zoom)
{
// TODO: apply zoom values to vertices
- e_comp_object_transform_transp_vertices_set_with_zoom(ec->frame, &ec->transform_core.result.vertices,
+ e_view_client_transform_transp_vertices_set_with_zoom(view_client, &ec->transform_core.result.vertices,
ec->transform_core.result.transform.zoom);
- e_comp_object_transform_bg_vertices_set_with_zoom(ec->frame, &ec->transform_core.result.boundary.vertices,
+ e_view_client_transform_bg_vertices_set_with_zoom(view_client, &ec->transform_core.result.boundary.vertices,
ec->transform_core.result.transform.zoom);
+
_e_client_transform_core_boundary_update(ec, &ec->transform_core.result.boundary.vertices);
- _e_client_transform_core_vertices_apply_with_zoom(ec, ec->frame, &ec->transform_core.result.vertices, &ec->transform_core.result.transform,
+ _e_client_transform_core_vertices_apply_with_zoom(ec, &ec->transform_core.result.vertices, &ec->transform_core.result.transform,
ec->transform_core.result.transform.zoom);
}
else
{
- e_comp_object_transform_transp_vertices_set(ec->frame, &ec->transform_core.result.vertices);
- e_comp_object_transform_bg_vertices_set(ec->frame, &ec->transform_core.result.boundary.vertices);
+ e_view_client_transform_transp_vertices_set(view_client, &ec->transform_core.result.vertices);
+ e_view_client_transform_bg_vertices_set(view_client, &ec->transform_core.result.boundary.vertices);
+
_e_client_transform_core_boundary_update(ec, &ec->transform_core.result.boundary.vertices);
- _e_client_transform_core_vertices_apply(ec, ec->frame, &ec->transform_core.result.vertices, &ec->transform_core.result.transform);
+ _e_client_transform_core_vertices_apply(ec, &ec->transform_core.result.vertices, &ec->transform_core.result.transform);
}
// 6. subsurface update
if (e_input_thread_check_client_cloning_needed())
_e_input_thread_client_transform_core_state_set(ec, EINA_FALSE);
- _e_client_transform_core_vertices_apply(ec, ec->frame, NULL, NULL);
- e_comp_object_transform_bg_set(ec->frame, EINA_FALSE);
+ _e_client_transform_core_vertices_apply(ec, NULL, NULL);
+ e_view_client_transform_bg_set(view_client, EINA_FALSE);
ec->transform_core.background = EINA_FALSE;
- e_comp_object_transform_transp_set(ec->frame, EINA_FALSE);
+ e_view_client_transform_transp_set(view_client, EINA_FALSE);
_e_client_transform_core_sub_update(ec, NULL);
if (!e_object_is_del(E_OBJECT(ec)))
{
ELOGF("E_CLIENT", "e_view_client_show by unset show_pending", ec);
e_view_client_show(PRI(ec)->view_client);
- //e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
EC_CHANGED(ec);
}
}
return ec->comp_data;
}
-EINTERN Eina_Bool
+EINTERN void
e_client_map_set(E_Client *ec, E_Map *em)
{
- EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE);
+ E_View_Client *view_client;
+ E_View *view;
+
+ EINA_SAFETY_ON_NULL_RETURN(ec);
+
+ view_client = e_client_view_get(ec);
+ view = e_view_client_view_get(view_client);
- return e_map_set_to_comp_object(em, ec->frame);
+ e_view_map_set(view, em);
}
E_API E_Map *
-e_client_map_get(const E_Client *ec)
+e_client_map_get(E_Client *ec)
{
+ E_View_Client *view_client;
+ E_View *view;
+ E_Client *tmp_ec;
+
EINA_SAFETY_ON_NULL_RETURN_VAL(ec, NULL);
+ tmp_ec = (E_Client *)ec;
+
+ view_client = e_client_view_get(tmp_ec);
+ view = e_view_client_view_get(view_client);
- return e_map_get_from_comp_object(ec->frame);
+ return e_view_map_get(view);
}
EINTERN Eina_Bool
e_client_map_enable_set(E_Client *ec, Eina_Bool enable)
{
+ E_View_Client *view_client;
+
EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE);
- EINA_SAFETY_ON_NULL_RETURN_VAL(ec->frame, EINA_FALSE);
- e_view_map_enable_set(e_view_client_view_get(PRI(ec)->view_client), enable);
+ view_client = e_client_view_get(ec);
+ e_view_map_enable_set(e_view_client_view_get(view_client), enable);
return EINA_TRUE;
}
EINTERN void
e_client_aot_type_set(E_Client *ec, E_Aot_Type type)
{
+ E_View_Client *view_client;
+ E_View *view;
+
API_ENTRY;
priv->aot_type = type;
if (type == E_AOT_TYPE_LAUNCHER)
{
- if (ec->frame)
+ view_client = e_client_view_get(ec);
+ if (view_client)
{
ELOGF("TZPOL", "AOT Launcher window. Set to skip compositing", ec);
- evas_object_color_set(ec->frame, 0, 0, 0, 0);
+ view = e_view_client_view_get(view_client);
+ e_view_color_set(view, 0, 0, 0, 0);
}
}
}
return ec->focused;
}
+//TODO: this function will be removed
E_API Evas_Object *
e_client_frame_get(E_Client *ec)
{