ivi_surface_listener Struct Reference

Application interface to surface in ivi compositor. More...

`#include <ivi-application-client-protocol.h>`

## Data Fields

void(* | visibility )(void *data, struct ivi_surface *ivi_surface, int32_t visibility)
| Visibility of surface in ivi compositor has changed.
void(* | warning )(void *data, struct ivi_surface *ivi_surface, int32_t warning_code, const char *warning_text)
| Server-side warning detected.

## Detailed Description

Application interface to surface in ivi compositor.

## Field Documentation

## visibility

void(* ivi_surface_listener::visibility) (void *data, struct ivi_surface *ivi_surface, int32_t visibility)

Visibility of surface in ivi compositor has changed.

The new visibility state is provided in argument `visibility`. If `visibility` is 0, the surface has become invisible. If `visibility` is not 0, the surface has become visible.

## warning

void(* ivi_surface_listener::warning) (void *data, struct ivi_surface *ivi_surface, int32_t warning_code, const char *warning_text)

Server-side warning detected.

The ivi compositor encountered warning while processing a request by this application. The warning is defined by argument `warning_code` and optional `warning_text`. If the warning is detected, client shall destroy the `ivi_surface` object.

When a warning event is sent, the compositor turns the `ivi_surface` object inert. The `ivi_surface` will not deliver further events, all requests on it are ignored except 'destroy', and the association to the ivi_id is removed. The client should destroy the `ivi_surface` object. If an inert `ivi_surface` object is used as an argument to any other object's request, that request will [produce a fatal error / produce a warning / be ignored].