E_API extern int E_EVENT_CLIENT_FOCUS_SKIP_SET;
E_API extern int E_EVENT_CLIENT_FOCUS_SKIP_UNSET;
-EINTERN void e_client_idler_before(Eina_Bool *check_focus);
-EINTERN Eina_Bool e_client_init(void);
-EINTERN void e_client_shutdown(void);
-E_API E_Client *e_client_from_surface_resource(struct wl_resource *surface_resource);
E_API E_Client *e_client_new(E_Pixmap *cp, int first_map, int internal);
-E_API Eina_Bool e_client_is_internal(E_Client *ec);
-E_API void e_client_unignore(E_Client *ec);
-EINTERN void e_client_desk_iconify_skip_set(E_Client *ec, Eina_Bool skip);
-EINTERN Eina_Bool e_client_desk_iconify_skip_get(E_Client *ec);
-EINTERN Eina_Bool e_client_comp_grabbed_get(void);
-EINTERN E_Client *e_client_action_get(void);
-EINTERN void e_client_mouse_in(E_Client *ec, int x, int y);
-EINTERN void e_client_mouse_out(E_Client *ec, int x, int y);
-EINTERN void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);
-EINTERN void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev);
-EINTERN void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button* ev);
-EINTERN void e_client_mouse_move(E_Client *ec, Evas_Point *output);
-EINTERN void e_client_res_change_geometry_save(E_Client *bd);
-EINTERN void e_client_res_change_geometry_restore(E_Client *ec);
-EINTERN void e_client_pos_set(E_Client *ec, int x, int y);
-EINTERN void e_client_pos_get(E_Client *ec, int *x, int *y);
-E_API void e_client_size_set(E_Client *ec, int w, int h);
-E_API void e_client_size_get(E_Client *ec, int *w, int *h);
-E_API void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
+E_API E_Client *e_client_from_surface_resource(struct wl_resource *surface_resource);
+E_API void e_client_unignore(E_Client *ec);
+E_API void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
E_API E_Client *e_client_above_get(const E_Client *ec);
E_API E_Client *e_client_below_get(const E_Client *ec);
-EINTERN E_Client *e_client_visible_above_get(E_Client *ec);
-EINTERN E_Client *e_client_visible_below_get(E_Client *ec);
E_API E_Client *e_client_bottom_get(void);
E_API E_Client *e_client_top_get(void);
-EINTERN unsigned int e_clients_count(void);
-EINTERN void e_client_move_intercept_cb_set(E_Client *ec, E_Client_Move_Intercept_Cb cb);
-E_API E_Client_Hook *e_client_hook_add(E_Client_Hook_Point hookpoint, E_Client_Hook_Cb func, const void *data);
-E_API void e_client_hook_del(E_Client_Hook *ch);
-E_API E_Client_Intercept_Hook *e_client_intercept_hook_add(E_Client_Intercept_Hook_Point hookpoint, E_Client_Intercept_Hook_Cb func, const void *data);
-E_API void e_client_intercept_hook_del(E_Client_Intercept_Hook *ch);
-E_API void e_client_focus_latest_set(E_Client *ec);
-E_API void e_client_focus_defer_set(E_Client *ec);
-EINTERN void e_client_activate(E_Client *ec);
-E_API E_Client *e_client_focused_get(void);
-EINTERN Eina_List *e_client_lost_windows_get(E_Zone *zone);
-EINTERN void e_client_maximized_geometry_set(E_Client *ec, int x, int y, int w, int h);
-EINTERN void e_client_maximized_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
-EINTERN void e_client_maximize_update(E_Client *ec);
-E_API void e_client_maximize(E_Client *ec, E_Maximize max);
-E_API void e_client_unmaximize(E_Client *ec, E_Maximize max);
-EINTERN void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
-EINTERN void e_client_unfullscreen(E_Client *ec);
-E_API void e_client_iconify(E_Client *ec);
-E_API void e_client_uniconify(E_Client *ec);
-E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
-EINTERN E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
+E_API void e_client_maximize(E_Client *ec, E_Maximize max);
+E_API void e_client_unmaximize(E_Client *ec, E_Maximize max);
+E_API void e_client_iconify(E_Client *ec);
+E_API void e_client_uniconify(E_Client *ec);
+E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
+E_API void e_client_act_move_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
+E_API void e_client_redirected_set(E_Client *ec, Eina_Bool set);
+E_API void e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set);
+E_API Eina_Bool e_client_first_mapped_get(E_Client *ec);
+E_API void e_client_window_role_set(E_Client *ec, const char *role);
+E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus);
+E_API Eina_Bool e_client_video_client_has(E_Client *ec);
+E_API Eina_Bool e_client_normal_client_has(E_Client *ec);
+E_API void e_client_stay_within_canvas_margin(E_Client *ec);
+E_API void e_client_raise(E_Client *ec);
+E_API void e_client_lower(E_Client *ec);
+E_API E_Map *e_client_map_get(const E_Client *ec); // get E_Map from e_client. it must be freed after used.
+E_API E_Transient e_client_transient_policy_get(E_Client *ec);
+
+//#ifdef REFACTOR_DESK_AREA
+//#else
+E_API Eina_Bool e_client_desk_area_set(E_Client *ec, E_Desk_Area *eda);
+//#endif
+
+E_API void e_client_size_set(E_Client *ec, int w, int h);
+E_API void e_client_size_get(E_Client *ec, int *w, int *h);
+
+E_API Eina_Bool e_client_is_internal(E_Client *ec);
E_API Eina_Bool e_client_is_iconified_by_client(E_Client *ec);
-EINTERN void e_client_hide_by_request_set(E_Client *ec, Eina_Bool set);
-EINTERN Eina_Bool e_client_hide_by_request_get(E_Client *ec);
-EINTERN void e_client_stick(E_Client *ec);
-EINTERN void e_client_unstick(E_Client *ec);
-EINTERN void e_client_pinned_set(E_Client *ec, Eina_Bool set);
-EINTERN void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden);
-EINTERN Eina_Bool e_client_border_set(E_Client *ec, const char *name);
-EINTERN void e_client_act_move_keyboard(E_Client *ec);
-EINTERN void e_client_act_resize_keyboard(E_Client *ec);
-EINTERN void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
-E_API void e_client_act_move_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
-EINTERN void e_client_act_resize_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, E_Pointer_Mode resize_mode);
-EINTERN void e_client_act_resize_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
-EINTERN void e_client_act_menu_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, int key);
-EINTERN void e_client_act_close_begin(E_Client *ec);
-EINTERN void e_client_act_kill_begin(E_Client *ec);
-EINTERN void e_client_ping(E_Client *cw);
-EINTERN void e_client_move_cancel(void);
-EINTERN void e_client_resize_cancel(void);
-EINTERN Eina_Bool e_client_resize_begin(E_Client *ec);
-EINTERN void e_client_frame_recalc(E_Client *ec);
-EINTERN void e_client_signal_move_begin(E_Client *ec, const char *sig, const char *src EINA_UNUSED);
-EINTERN void e_client_signal_move_end(E_Client *ec, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
-EINTERN void e_client_signal_resize_begin(E_Client *ec, const char *dir, const char *sig, const char *src EINA_UNUSED);
-EINTERN void e_client_signal_resize_end(E_Client *ec, const char *dir EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
-EINTERN void e_client_resize_limit(E_Client *ec, int *w, int *h);
-EINTERN E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
+
E_API E_Client *e_client_under_position_get(E_Desk *desk, int x, int y, E_Client *exclude);
E_API E_Client *e_client_under_position_input_get(E_Desk *desk, int x, int y);
-E_API void e_client_redirected_set(E_Client *ec, Eina_Bool set);
-EINTERN E_Client *e_client_transient_child_top_get(E_Client *ec, Eina_Bool consider_focus);
+
+E_API int e_client_show_pending_set(E_Client *ec);
+E_API int e_client_show_pending_unset(E_Client *ec);
+
+E_API void e_client_stack_above(E_Client *ec, E_Client *above); // ec is placed on the above
+E_API void e_client_stack_below(E_Client *ec, E_Client *below); // ec is placed under the below
+
+/* client layer shall be placed on range between E_LAYER_CLIENT_DESKTOP and E_LAYER_CLIENT_CURSOR
+ * if it is in unexpected layer return E_LAYER_BOTTOM otherwise
+ */
+E_API E_Layer e_client_layer_get(E_Client *ec);
+E_API Eina_Bool e_client_layer_set(E_Client *ec, E_Layer layer);
+
+E_API void e_client_focus_latest_set(E_Client *ec);
+E_API void e_client_focus_defer_set(E_Client *ec);
+E_API E_Client *e_client_focused_get(void);
+E_API void e_client_focus_skip_set(E_Client *ec, Eina_Bool skip, Eina_Bool by_client);
+
E_API void e_client_visibility_calculate(void); // FIXME: This has to be deprecated.
E_API void e_client_visibility_skip_set(E_Client *ec, Eina_Bool skip);
-E_API void e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set);
-E_API Eina_Bool e_client_first_mapped_get(E_Client *ec);
-EINTERN Eina_Bool e_client_mapped_get(E_Client *ec);
-EINTERN void e_client_mapped_set(E_Client *ec, Eina_Bool set);
+E_API void e_client_visibility_force_obscured_set(E_Client *ec, Eina_Bool set);
+
+E_API void e_client_cursor_map_apply(E_Client *ec, int rotation, int x, int y);
+E_API Eina_Bool e_client_cursor_hide(E_Client *ec);
-E_API void e_client_transform_update(E_Client *ec);
-EINTERN void e_client_transform_apply(E_Client *ec, double degree, double zoom, int cx, int cy);
-EINTERN void e_client_transform_clear(E_Client *ec);
-E_API void e_client_cursor_map_apply(E_Client *ec, int rotation, int x, int y);
+E_API E_Client_Hook *e_client_hook_add(E_Client_Hook_Point hookpoint, E_Client_Hook_Cb func, const void *data);
+E_API void e_client_hook_del(E_Client_Hook *ch);
+
+E_API E_Client_Intercept_Hook *e_client_intercept_hook_add(E_Client_Intercept_Hook_Point hookpoint, E_Client_Intercept_Hook_Cb func, const void *data);
+E_API void e_client_intercept_hook_del(E_Client_Intercept_Hook *ch);
E_API Eina_Bool e_client_transform_core_enable_get(E_Client *ec);
E_API void e_client_transform_core_add(E_Client *ec, E_Util_Transform *transform);
E_API E_Util_Transform *e_client_transform_core_transform_get(E_Client *ec, int index);
E_API void e_client_transform_core_input_transform(E_Client *ec, int x, int y, int *out_x, int *out_y);
E_API void e_client_transform_core_input_inv_transform(E_Client *ec, int x, int y, int *out_x, int *out_y);
-EINTERN void e_client_transform_core_input_inv_rect_transform(E_Client *ec, int x, int y, int *out_x, int *out_y);
E_API void e_client_transform_core_direct_render_set(E_Client *ec, Eina_Bool set);
-
-EINTERN E_Pixmap *e_client_pixmap_change(E_Client *ec, E_Pixmap *newcp);
-E_API void e_client_window_role_set(E_Client *ec, const char *role);
-
-EINTERN Eina_Bool e_client_key_send(E_Client *ec, int keycode, Eina_Bool pressed, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_key_cancel(E_Client *ec, int keycode, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_touch_send(E_Client *ec, int idx, int x, int y, Eina_Bool pressed, Ecore_Device *dev, double radius_x, double radius_y, double pressure, double angle, unsigned int time);
-EINTERN Eina_Bool e_client_touch_update_send(E_Client *ec, int idx, int x, int y, Ecore_Device *dev, double radius_x, double radius_y, double pressure, double angle, unsigned int time);
-EINTERN Eina_Bool e_client_touch_cancel_send(E_Client *ec);
-EINTERN Eina_Bool e_client_mouse_button_send(E_Client *ec, int buttons, Eina_Bool pressed, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_mouse_move_send(E_Client *ec, int x, int y, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_mouse_wheel_send(E_Client *ec, int direction, int z, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_mouse_in_send(E_Client *ec, int x, int y, Ecore_Device *dev, unsigned int time);
-EINTERN Eina_Bool e_client_mouse_out_send(E_Client *ec, Ecore_Device *dev, unsigned int time);
-
-E_API Eina_Bool e_client_video_client_has(E_Client *ec);
-E_API Eina_Bool e_client_normal_client_has(E_Client *ec);
-
-E_API Eina_Bool e_client_cursor_hide(E_Client *ec);
-
-E_API void e_client_visibility_force_obscured_set(E_Client *ec, Eina_Bool set);
-
-E_API void e_client_stay_within_canvas_margin(E_Client *ec);
-
-EINTERN E_Capture_Save_State e_client_image_save(E_Client *ec, const char *dir, const char *name, E_Capture_Client_Save_End_Cb func_end, void *data, Eina_Bool skip_child);
+E_API void e_client_transform_update(E_Client *ec);
E_API void e_client_base_output_resolution_transform_adjust(E_Client *ec);
E_API Eina_Bool e_client_base_output_resolution_update(E_Client *ec);
E_API Eina_Bool e_client_base_output_resolution_useful_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
E_API Eina_Bool e_client_base_output_resolution_desk_useful_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h, Eina_Bool consider_obstacle_area);
-EINTERN Eina_Bool e_client_base_output_resolution_rsm_update(E_Client *bind_ec, E_Client *provider_ec);
-
-E_API void e_client_focus_skip_set(E_Client *ec, Eina_Bool skip, Eina_Bool by_client);
-EINTERN Eina_Bool e_client_check_above_focused(E_Client *ec);
-
-EINTERN void e_client_pending_geometry_flush(E_Client *ec);
-EINTERN Eina_Bool e_client_pending_geometry_has(E_Client *ec);
-EINTERN void e_client_pending_geometry_last_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
-
-E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus);
-EINTERN void e_client_frame_geometry_set(E_Client *ec, int x, int y, int w, int h);
-
-E_API Eina_Bool e_client_layer_set(E_Client *ec, E_Layer layer);
-/* client layer shall be placed on range between E_LAYER_CLIENT_DESKTOP and E_LAYER_CLIENT_CURSOR
- * if it is in unexpected layer return E_LAYER_BOTTOM otherwise
- */
-E_API E_Layer e_client_layer_get(E_Client *ec);
-
-//#ifdef REFACTOR_DESK_AREA
-//#else
-EINTERN Eina_Bool e_client_layer_set_by_desk_area(E_Client *ec, E_Layer layer);
-EINTERN void e_client_desk_area_original_layer_restore(E_Client *ec);
-EINTERN E_Layer e_client_desk_area_original_layer_get(E_Client *ec);
-EINTERN Eina_Bool e_client_desk_area_client_layer_set(E_Client *ec, E_Desk_Area_Client_Layer edgc_layer);
-EINTERN E_Desk_Area_Client_Layer e_client_desk_area_client_layer_get(E_Client *ec);
-
-E_API Eina_Bool e_client_desk_area_set(E_Client *ec, E_Desk_Area *eda);
-//#endif
-
-E_API void e_client_raise(E_Client *ec);
-E_API void e_client_lower(E_Client *ec);
-// ec is placed on the above
-E_API void e_client_stack_above(E_Client *ec, E_Client *above);
-// ec is placed under the below
-E_API void e_client_stack_below(E_Client *ec, E_Client *below);
-
-E_API int e_client_show_pending_set(E_Client *ec);
-E_API int e_client_show_pending_unset(E_Client *ec);
-
-EINTERN int e_client_type_update(E_Client *ec);
-
typedef Eina_Bool (*E_Client_Surface_Tree_Foreach)(void *data, E_Client *ec);
/**
*/
E_API void e_client_surface_tree_foreach(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data);
-// get a comp_data from a ec
-EINTERN E_Comp_Wl_Client_Data *e_client_cdata_new(E_Client *ec);
-EINTERN void e_client_cdata_free(E_Client *ec);
-EINTERN E_Comp_Wl_Client_Data *e_client_cdata_get(E_Client *ec);
-
-EINTERN Eina_Bool e_client_map_set(E_Client *ec, E_Map *em);
-// get E_Map from e_client. it must be freed after used.
-E_API E_Map *e_client_map_get(const E_Client *ec);
-EINTERN Eina_Bool e_client_map_enable_set(E_Client *ec, Eina_Bool enabled);
-
-EINTERN void e_client_belong_to_parent_set(E_Client *ec, Eina_Bool set);
-EINTERN Eina_Bool e_client_is_belong_to_parent(E_Client *ec);
-
-EINTERN void e_client_transient_policy_set(E_Client *ec, E_Transient policy);
-E_API E_Transient e_client_transient_policy_get(E_Client *ec);
-
-EINTERN void e_client_resize_object_create_cb_set(E_Client_Resize_Object_Create_Cb cb);
-EINTERN void e_client_resize_unit_size_set(E_Client *ec, unsigned int unit_size);
-
-EINTERN void e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable);
-EINTERN Eina_Bool e_client_desk_zoom_enable_get(E_Client *ec);
-
-EINTERN void e_client_layout_apply(E_Client *ec, Eina_Bool apply);
-EINTERN Eina_Bool e_client_is_layout_apply(E_Client *ec);
-
-EINTERN Eina_Bool e_client_fps_get(E_Client *ec, double *fps);
-EINTERN void e_client_fps_update(E_Client *ec);
-EINTERN void e_client_fps_enable(E_Client *ec, Eina_Bool enable);
-
-EINTERN Eina_Bool e_client_explicit_sync_get(E_Client *ec);
-EINTERN Eina_Bool e_client_explicit_sync_set(E_Client *ec, Eina_Bool enable);
-EINTERN int e_client_explicit_sync_acquire_fence_fd_get(E_Client *ec);
-EINTERN Eina_Bool e_client_explicit_sync_acquire_fence_fd_set(E_Client *ec, int fd);
-EINTERN void e_client_focus_calculate(E_Zone *zone);
-EINTERN Eina_Bool e_client_visibility_touched_check(E_Client *ec);
-EINTERN void e_client_visibility_change_notify(E_Client *ec);
-EINTERN void e_client_visibility_end_notify(void);
-
-EINTERN Eina_Bool e_client_intercept_hook_focus_revert_call(E_Client *ec);
-EINTERN E_Client *e_client_check_obscured_by_children_group(E_Client *ec);
-EINTERN Eina_Bool e_client_check_really_iconified(E_Client *ec);
-EINTERN E_Client *e_client_check_fully_contain_by_above(E_Client *ec, Eina_Bool check_layer);
-
-EINTERN Eina_Bool e_client_intercept_hook_auto_placement_call(E_Client *ec);
-EINTERN void e_client_iconify_event_send(E_Client *ec);
-EINTERN void e_client_uniconify_event_send(E_Client *ec);
-EINTERN void e_client_frame_update(E_Client *ec);
-EINTERN Eina_Bool e_client_is_parent_iconify_by_client(E_Client *ec);
-
-EINTERN void e_client_stack_transient_for_done_notify(E_Client *ec);
-
-//#ifdef REFACTOR_DESK_AREA
-EINTERN void e_client_subsurface_stack_update(E_Client *ec);
-//#endif
-
/**
* Move window to coordinates that do not account client decorations yet.
*
return e_pixmap_parent_window_get(ec->pixmap);
}
+EINTERN Eina_Bool e_client_init(void);
+EINTERN void e_client_shutdown(void);
+
+EINTERN void e_client_idler_before(Eina_Bool *check_focus);
+EINTERN unsigned int e_clients_count(void);
+EINTERN void e_client_activate(E_Client *ec);
+EINTERN Eina_List *e_client_lost_windows_get(E_Zone *zone);
+EINTERN void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
+EINTERN void e_client_unfullscreen(E_Client *ec);
+EINTERN void e_client_stick(E_Client *ec);
+EINTERN void e_client_unstick(E_Client *ec);
+EINTERN void e_client_pinned_set(E_Client *ec, Eina_Bool set);
+EINTERN Eina_Bool e_client_border_set(E_Client *ec, const char *name);
+EINTERN void e_client_ping(E_Client *cw);
+EINTERN int e_client_type_update(E_Client *ec);
+EINTERN void e_client_transient_policy_set(E_Client *ec, E_Transient policy);
+
+EINTERN Eina_Bool e_client_is_parent_iconify_by_client(E_Client *ec);
+EINTERN Eina_Bool e_client_is_layout_apply(E_Client *ec);
+EINTERN Eina_Bool e_client_is_belong_to_parent(E_Client *ec);
+
+EINTERN Eina_Bool e_client_check_above_focused(E_Client *ec);
+EINTERN E_Client *e_client_check_obscured_by_children_group(E_Client *ec);
+EINTERN Eina_Bool e_client_check_really_iconified(E_Client *ec);
+EINTERN E_Client *e_client_check_fully_contain_by_above(E_Client *ec, Eina_Bool check_layer);
+
+EINTERN E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
+
+EINTERN E_Capture_Save_State e_client_image_save(E_Client *ec, const char *dir, const char *name, E_Capture_Client_Save_End_Cb func_end, void *data, Eina_Bool skip_child);
+
+EINTERN Eina_Bool e_client_base_output_resolution_rsm_update(E_Client *bind_ec, E_Client *provider_ec);
+
+EINTERN E_Pixmap *e_client_pixmap_change(E_Client *ec, E_Pixmap *newcp);
+
+EINTERN void e_client_frame_recalc(E_Client *ec);
+EINTERN void e_client_frame_geometry_set(E_Client *ec, int x, int y, int w, int h);
+EINTERN void e_client_frame_update(E_Client *ec);
+
+EINTERN void e_client_move_intercept_cb_set(E_Client *ec, E_Client_Move_Intercept_Cb cb);
+EINTERN void e_client_move_cancel(void);
+
+EINTERN Eina_Bool e_client_resize_begin(E_Client *ec);
+EINTERN void e_client_resize_cancel(void);
+EINTERN void e_client_resize_object_create_cb_set(E_Client_Resize_Object_Create_Cb cb);
+EINTERN void e_client_resize_unit_size_set(E_Client *ec, unsigned int unit_size);
+EINTERN void e_client_resize_limit(E_Client *ec, int *w, int *h);
+
+EINTERN void e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable);
+EINTERN Eina_Bool e_client_desk_zoom_enable_get(E_Client *ec);
+EINTERN void e_client_desk_iconify_skip_set(E_Client *ec, Eina_Bool skip);
+EINTERN Eina_Bool e_client_desk_iconify_skip_get(E_Client *ec);
+
+EINTERN void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden);
+EINTERN Eina_Bool e_client_comp_grabbed_get(void);
+
+EINTERN E_Client *e_client_action_get(void);
+
+EINTERN Eina_Bool e_client_key_send(E_Client *ec, int keycode, Eina_Bool pressed, Ecore_Device *dev, unsigned int time);
+EINTERN Eina_Bool e_client_key_cancel(E_Client *ec, int keycode, Ecore_Device *dev, unsigned int time);
+
+EINTERN Eina_Bool e_client_touch_send(E_Client *ec, int idx, int x, int y, Eina_Bool pressed, Ecore_Device *dev, double radius_x, double radius_y, double pressure, double angle, unsigned int time);
+EINTERN Eina_Bool e_client_touch_update_send(E_Client *ec, int idx, int x, int y, Ecore_Device *dev, double radius_x, double radius_y, double pressure, double angle, unsigned int time);
+EINTERN Eina_Bool e_client_touch_cancel_send(E_Client *ec);
+
+EINTERN void e_client_mouse_in(E_Client *ec, int x, int y);
+EINTERN void e_client_mouse_out(E_Client *ec, int x, int y);
+EINTERN void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);
+EINTERN void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev);
+EINTERN void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button* ev);
+EINTERN void e_client_mouse_move(E_Client *ec, Evas_Point *output);
+EINTERN Eina_Bool e_client_mouse_button_send(E_Client *ec, int buttons, Eina_Bool pressed, Ecore_Device *dev, unsigned int time);
+EINTERN Eina_Bool e_client_mouse_move_send(E_Client *ec, int x, int y, Ecore_Device *dev, unsigned int time);
+EINTERN Eina_Bool e_client_mouse_wheel_send(E_Client *ec, int direction, int z, Ecore_Device *dev, unsigned int time);
+EINTERN Eina_Bool e_client_mouse_in_send(E_Client *ec, int x, int y, Ecore_Device *dev, unsigned int time);
+EINTERN Eina_Bool e_client_mouse_out_send(E_Client *ec, Ecore_Device *dev, unsigned int time);
+
+EINTERN void e_client_res_change_geometry_save(E_Client *bd);
+EINTERN void e_client_res_change_geometry_restore(E_Client *ec);
+
+EINTERN void e_client_pos_set(E_Client *ec, int x, int y);
+EINTERN void e_client_pos_get(E_Client *ec, int *x, int *y);
+
+EINTERN E_Client *e_client_visible_above_get(E_Client *ec);
+EINTERN E_Client *e_client_visible_below_get(E_Client *ec);
+
+EINTERN void e_client_maximized_geometry_set(E_Client *ec, int x, int y, int w, int h);
+EINTERN void e_client_maximized_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
+EINTERN void e_client_maximize_update(E_Client *ec);
+
+EINTERN void e_client_hide_by_request_set(E_Client *ec, Eina_Bool set);
+EINTERN Eina_Bool e_client_hide_by_request_get(E_Client *ec);
+
+EINTERN void e_client_act_move_keyboard(E_Client *ec);
+EINTERN void e_client_act_resize_keyboard(E_Client *ec);
+EINTERN void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
+EINTERN void e_client_act_resize_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, E_Pointer_Mode resize_mode);
+EINTERN void e_client_act_resize_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
+EINTERN void e_client_act_menu_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, int key);
+EINTERN void e_client_act_close_begin(E_Client *ec);
+EINTERN void e_client_act_kill_begin(E_Client *ec);
+
+EINTERN void e_client_signal_move_begin(E_Client *ec, const char *sig, const char *src EINA_UNUSED);
+EINTERN void e_client_signal_move_end(E_Client *ec, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
+EINTERN void e_client_signal_resize_begin(E_Client *ec, const char *dir, const char *sig, const char *src EINA_UNUSED);
+EINTERN void e_client_signal_resize_end(E_Client *ec, const char *dir EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
+
+EINTERN E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
+EINTERN E_Client *e_client_transient_child_top_get(E_Client *ec, Eina_Bool consider_focus);
+EINTERN Eina_Bool e_client_mapped_get(E_Client *ec);
+EINTERN void e_client_mapped_set(E_Client *ec, Eina_Bool set);
+
+EINTERN void e_client_transform_apply(E_Client *ec, double degree, double zoom, int cx, int cy);
+EINTERN void e_client_transform_clear(E_Client *ec);
+EINTERN void e_client_transform_core_input_inv_rect_transform(E_Client *ec, int x, int y, int *out_x, int *out_y);
+
+EINTERN void e_client_pending_geometry_flush(E_Client *ec);
+EINTERN Eina_Bool e_client_pending_geometry_has(E_Client *ec);
+EINTERN void e_client_pending_geometry_last_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
+
+//#ifdef REFACTOR_DESK_AREA
+//#else
+EINTERN Eina_Bool e_client_layer_set_by_desk_area(E_Client *ec, E_Layer layer);
+EINTERN void e_client_desk_area_original_layer_restore(E_Client *ec);
+EINTERN E_Layer e_client_desk_area_original_layer_get(E_Client *ec);
+EINTERN Eina_Bool e_client_desk_area_client_layer_set(E_Client *ec, E_Desk_Area_Client_Layer edgc_layer);
+EINTERN E_Desk_Area_Client_Layer e_client_desk_area_client_layer_get(E_Client *ec);
+//#endif
+
+// get a comp_data from a ec
+EINTERN E_Comp_Wl_Client_Data *e_client_cdata_new(E_Client *ec);
+EINTERN void e_client_cdata_free(E_Client *ec);
+EINTERN E_Comp_Wl_Client_Data *e_client_cdata_get(E_Client *ec);
+
+EINTERN Eina_Bool e_client_map_set(E_Client *ec, E_Map *em);
+EINTERN Eina_Bool e_client_map_enable_set(E_Client *ec, Eina_Bool enabled);
+EINTERN void e_client_belong_to_parent_set(E_Client *ec, Eina_Bool set);
+
+EINTERN void e_client_layout_apply(E_Client *ec, Eina_Bool apply);
+
+EINTERN Eina_Bool e_client_fps_get(E_Client *ec, double *fps);
+EINTERN void e_client_fps_update(E_Client *ec);
+EINTERN void e_client_fps_enable(E_Client *ec, Eina_Bool enable);
+
+EINTERN Eina_Bool e_client_explicit_sync_get(E_Client *ec);
+EINTERN Eina_Bool e_client_explicit_sync_set(E_Client *ec, Eina_Bool enable);
+EINTERN int e_client_explicit_sync_acquire_fence_fd_get(E_Client *ec);
+EINTERN Eina_Bool e_client_explicit_sync_acquire_fence_fd_set(E_Client *ec, int fd);
+
+EINTERN void e_client_focus_calculate(E_Zone *zone);
+
+EINTERN Eina_Bool e_client_visibility_touched_check(E_Client *ec);
+EINTERN void e_client_visibility_change_notify(E_Client *ec);
+EINTERN void e_client_visibility_end_notify(void);
+
+EINTERN Eina_Bool e_client_intercept_hook_focus_revert_call(E_Client *ec);
+EINTERN Eina_Bool e_client_intercept_hook_auto_placement_call(E_Client *ec);
+
+EINTERN void e_client_iconify_event_send(E_Client *ec);
+EINTERN void e_client_uniconify_event_send(E_Client *ec);
+
+EINTERN void e_client_stack_transient_for_done_notify(E_Client *ec);
+
+//#ifdef REFACTOR_DESK_AREA
+EINTERN void e_client_subsurface_stack_update(E_Client *ec);
+//#endif
+
+// listeners
EINTERN void e_client_eval_pre_fetch_listener_add(E_Client *ec, struct wl_listener *listener);
EINTERN void e_client_eval_fetch_listener_add(E_Client *ec, struct wl_listener *listener);
EINTERN void e_client_eval_pre_post_fetch_listener_add(E_Client *ec, struct wl_listener *listener);