mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-09-06 18:05:39 +00:00
ivi-layout: add surface type to the surface properties
This makes it possible for the controller to distinguish different surface types. For IVI and desktop surfaces, this is not all that useful, but it will be needed for a new surface type: input panels. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
This commit is contained in:
parent
1c02bdfb8e
commit
ad2c014ef3
|
@ -66,6 +66,11 @@ extern "C" {
|
|||
struct ivi_layout_layer;
|
||||
struct ivi_layout_surface;
|
||||
|
||||
enum ivi_layout_surface_type {
|
||||
IVI_LAYOUT_SURFACE_TYPE_IVI,
|
||||
IVI_LAYOUT_SURFACE_TYPE_DESKTOP,
|
||||
};
|
||||
|
||||
struct ivi_layout_surface_properties
|
||||
{
|
||||
wl_fixed_t opacity;
|
||||
|
@ -86,6 +91,7 @@ struct ivi_layout_surface_properties
|
|||
int32_t transition_type;
|
||||
uint32_t transition_duration;
|
||||
uint32_t event_mask;
|
||||
enum ivi_layout_surface_type surface_type;
|
||||
};
|
||||
|
||||
struct ivi_layout_layer_properties
|
||||
|
|
|
@ -1961,7 +1961,8 @@ ivi_layout_surface_dump(struct weston_surface *surface,
|
|||
*/
|
||||
|
||||
static struct ivi_layout_surface*
|
||||
surface_create(struct weston_surface *wl_surface, uint32_t id_surface)
|
||||
surface_create(struct weston_surface *wl_surface, uint32_t id_surface,
|
||||
enum ivi_layout_surface_type surface_type)
|
||||
{
|
||||
struct ivi_layout *layout = get_instance();
|
||||
struct ivi_layout_surface *ivisurf = NULL;
|
||||
|
@ -1978,6 +1979,7 @@ surface_create(struct weston_surface *wl_surface, uint32_t id_surface)
|
|||
ivisurf->surface->height_from_buffer = 0;
|
||||
|
||||
init_surface_properties(&ivisurf->prop);
|
||||
ivisurf->prop.surface_type = surface_type;
|
||||
|
||||
ivisurf->pending.prop = ivisurf->prop;
|
||||
|
||||
|
@ -2007,7 +2009,8 @@ ivi_layout_desktop_surface_create(struct weston_surface *wl_surface,
|
|||
struct ivi_layout *layout = get_instance();
|
||||
struct ivi_layout_surface *ivisurf;
|
||||
|
||||
ivisurf = surface_create(wl_surface, IVI_INVALID_ID);
|
||||
ivisurf = surface_create(wl_surface, IVI_INVALID_ID,
|
||||
IVI_LAYOUT_SURFACE_TYPE_DESKTOP);
|
||||
|
||||
ivisurf->weston_desktop_surface = surface;
|
||||
wl_signal_emit(&layout->surface_notification.created, ivisurf);
|
||||
|
@ -2040,7 +2043,8 @@ ivi_layout_surface_create(struct weston_surface *wl_surface,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
ivisurf = surface_create(wl_surface, id_surface);
|
||||
ivisurf = surface_create(wl_surface, id_surface,
|
||||
IVI_LAYOUT_SURFACE_TYPE_IVI);
|
||||
|
||||
if (ivisurf)
|
||||
wl_signal_emit(&layout->surface_notification.created, ivisurf);
|
||||
|
|
Loading…
Reference in a new issue