diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-04-16 22:14:52 +0200 |
---|---|---|
committer | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2018-04-20 17:07:06 +0200 |
commit | bb0882c5dad030f676e424265ebcd869bb3ff899 (patch) | |
tree | d95bb2d7ad6b5ac47427f73babe015b0ade02342 /meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch | |
parent | 97e5e76efa44f55ee9aaf3998bb3df38b829706c (diff) |
Introduce meta-agl-profile-core and meta-agl-profile-graphics
Rework towards agl profiles.
This change is part of a series of changes to create the
AGL profiles.
This set will mainly introduce the 'core' profile.
It is setup to be a drop-in change, thus some files were kept
in (dummy) locations for now.
However, they'll be taken care of in the next changes in this series.
The main target of the meta-agl-profile-core layer is to host:
- a minimal, bootable image with network and package management enabled
-- agl-image-boot
- a minimal image with network and packagemanagement and the AGL APIs
-- agl-image-minimal
The layer meta-agl-profile-graphical is used as superset of these
and includes support for egl+wayland+weston. All recipes concerning
graphics were moved there. This is not a full profile as we still have
to migrate some parts of meta-agl-demo in a follow-up changeset.
The roadmap as discussed during the F2F session in Karlsruhe is:
- week 16 : core profile and profiles w/o graphics
- week 17 : graphical profiles
- week 18 : final conversion of the demo image
v2: moved agl-login-manager from -graphics to -core (see Jose's comment)
v3: moved back after discussion - follow-up in separate changeset
Change-Id: Idacb0d1274baac1f63f8d1b850d4b1104ac33918
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch')
-rw-r--r-- | meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch new file mode 100644 index 000000000..ddd949e35 --- /dev/null +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch @@ -0,0 +1,74 @@ +index 5b1f12f0..dd0997aa 100644 +--- a/ivi-shell/ivi-layout-export.h ++++ b/ivi-shell/ivi-layout-export.h +@@ -187,6 +187,16 @@ struct ivi_layout_interface { + */ + int32_t (*add_listener_configure_surface)(struct wl_listener *listener); + ++ /** ++ * \brief add a listener for notification when desktop_surface is configured ++ * ++ * When an desktop_surface is configured, a signal is emitted ++ * to the listening controller plugins. ++ * The pointer of the configured desktop_surface is sent as the void *data argument ++ * to the wl_listener::notify callback function of the listener. ++ */ ++ int32_t (*add_listener_configure_desktop_surface)(struct wl_listener *listener); ++ + /** + * \brief Get all ivi_surfaces which are currently registered and managed + * by the services +diff --git a/ivi-shell/ivi-layout-private.h b/ivi-shell/ivi-layout-private.h +index 2b8bd472..fe5be01a 100644 +--- a/ivi-shell/ivi-layout-private.h ++++ b/ivi-shell/ivi-layout-private.h +@@ -104,6 +104,7 @@ struct ivi_layout { + struct wl_signal created; + struct wl_signal removed; + struct wl_signal configure_changed; ++ struct wl_signal configure_desktop_changed; + } surface_notification; + + struct weston_layer layout_layer; +diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c +index fa8e75f6..690af742 100644 +--- a/ivi-shell/ivi-layout.c ++++ b/ivi-shell/ivi-layout.c +@@ -1040,6 +1040,21 @@ ivi_layout_add_listener_configure_surface(struct wl_listener *listener) + return IVI_SUCCEEDED; + } + ++static int32_t ++ivi_layout_add_listener_configure_desktop_surface(struct wl_listener *listener) ++{ ++ struct ivi_layout *layout = get_instance(); ++ ++ if (!listener) { ++ weston_log("ivi_layout_add_listener_configure_desktop_surface: invalid argument\n"); ++ return IVI_FAILED; ++ } ++ ++ wl_signal_add(&layout->surface_notification.configure_desktop_changed, listener); ++ ++ return IVI_SUCCEEDED; ++} ++ + uint32_t + ivi_layout_get_id_of_surface(struct ivi_layout_surface *ivisurf) + { +@@ -2057,6 +2072,7 @@ ivi_layout_init_with_compositor(struct weston_compositor *ec) + wl_signal_init(&layout->surface_notification.created); + wl_signal_init(&layout->surface_notification.removed); + wl_signal_init(&layout->surface_notification.configure_changed); ++ wl_signal_init(&layout->surface_notification.configure_desktop_changed); + + /* Add layout_layer at the last of weston_compositor.layer_list */ + weston_layer_init(&layout->layout_layer, ec); +@@ -2081,6 +2097,7 @@ static struct ivi_layout_interface ivi_layout_interface = { + .add_listener_create_surface = ivi_layout_add_listener_create_surface, + .add_listener_remove_surface = ivi_layout_add_listener_remove_surface, + .add_listener_configure_surface = ivi_layout_add_listener_configure_surface, ++ .add_listener_configure_desktop_surface = ivi_layout_add_listener_configure_desktop_surface, + .get_surface = shell_get_ivi_layout_surface, + .get_surfaces = ivi_layout_get_surfaces, + .get_id_of_surface = ivi_layout_get_id_of_surface, |