E_Subsurface_View view;
E_Surface *surface;
+ E_Surface *parent;
struct ds_subsurface *ds_subsurface;
struct wl_listener destroy;
wl_signal_add(&surface->events.parent_destroy, listener);
}
+EINTERN void
+e_surface_commit_listener_add(E_Surface *surface, struct wl_listener *listener)
+{
+ wl_signal_add(&surface->events.commit, listener);
+}
+
+EINTERN void
+e_surface_map_listener_add(E_Surface *surface, struct wl_listener *listener)
+{
+ ds_surface_add_map_listener(surface->ds_surface, listener);
+}
+
+EINTERN void
+e_surface_unmap_listener_add(E_Surface *surface, struct wl_listener *listener)
+{
+ ds_surface_add_unmap_listener(surface->ds_surface, listener);
+}
+
EINTERN Eina_Bool
e_surface_viewporter_resource_set(E_Surface *surface, struct wl_resource *viewporter)
{
sub->surface_destroy.notify = _e_subsurface_cb_surface_destroy;
wl_signal_add(&surface->base.destroy_signal, &sub->surface_destroy);
+ sub->parent = parent_surface;
sub->parent_surface_destroy.notify = _e_subsurface_cb_parent_surface_destroy;
wl_signal_add(&parent_surface->base.destroy_signal, &sub->parent_surface_destroy);
wl_list_remove(&sub->parent_surface_destroy.link);
wl_list_init(&sub->parent_surface_destroy.link);
+ sub->parent = NULL;
+
e_comp_wl_client_subsurface_parent_unset(sub->surface->ec);
}
*y = ret_y;
}
+EINTERN E_Surface *
+e_subsurface_parent_get(E_Subsurface *subsurface)
+{
+ return subsurface->parent;
+}
+
EINTERN void
e_subsurface_view_reposition_listener_add(E_Subsurface *subsurface, struct wl_listener *listener)
{
EINTERN E_Surface *e_surface_from_resource(struct wl_resource *surface_resource);
EINTERN void e_surface_destroy_listener_add(E_Surface *surface, struct wl_listener *listener);
EINTERN void e_surface_parent_destroy_listener_add(E_Surface *surface, struct wl_listener *listener);
+EINTERN void e_surface_commit_listener_add(E_Surface *surface, struct wl_listener *listener);
+EINTERN void e_surface_map_listener_add(E_Surface *surface, struct wl_listener *listener);
+EINTERN void e_surface_unmap_listener_add(E_Surface *surface, struct wl_listener *listener);
EINTERN struct wl_listener *e_surface_destroy_listener_get(E_Surface *surface, wl_notify_func_t notify);
EINTERN Eina_Bool e_surface_role_set(E_Surface *surface, const char *role_name, struct wl_resource *error_resource, uint32_t error_code);
EINTERN struct wl_resource *e_surface_viewporter_resource_get(E_Surface *surface);
EINTERN Eina_Bool e_subsurface_position_set(E_Subsurface *subsurface, int x, int y);
EINTERN void e_subsurface_destroy_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
EINTERN void e_subsurface_cached_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
-EINTERN void e_subsurface_sync_commit_pre_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
-EINTERN void e_subsurface_desync_commit_pre_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
+EINTERN void e_subsurface_sync_precommit_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
+EINTERN void e_subsurface_desync_precommit_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
+EINTERN void e_subsurface_stand_alone_mode_set(E_Subsurface *sub);
+EINTERN void e_subsurface_stand_alone_mode_unset(E_Subsurface *sub);
+EINTERN void e_subsurface_coord_get(E_Subsurface *subsurface, int *x, int *y);
+EINTERN E_Surface *e_subsurface_parent_get(E_Subsurface *subsurface);
EINTERN void e_subsurface_view_reposition_listener_add(E_Subsurface *subsurface, struct wl_listener *listener);
EINTERN void e_subsurface_view_position_set(E_Subsurface *subsurface, int x, int y);