summaryrefslogtreecommitdiff
path: root/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
diff options
context:
space:
mode:
Diffstat (limited to 'ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c')
-rw-r--r--ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
index 73568d7..f09a307 100644
--- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
+++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
@@ -2535,9 +2535,19 @@ ilm_getPropertiesOfSurface(t_ilm_uint surfaceID,
ctx_surf = get_surface_context(&ctx->wl, (uint32_t)surfaceID);
if (ctx_surf != NULL) {
-
- *pSurfaceProperties = ctx_surf->prop;
- returnValue = ILM_SUCCESS;
+ // request statistics for surface
+ ivi_controller_surface_send_stats(ctx_surf->controller);
+ // force submission
+ int ret = display_roundtrip_queue(ctx->wl.display, ctx->wl.queue);
+
+ // If we got an error here, there is really no sense
+ // in returning the properties as something is fundamentally
+ // broken.
+ if (ret != -1)
+ {
+ *pSurfaceProperties = ctx_surf->prop;
+ returnValue = ILM_SUCCESS;
+ }
}
}