From 77ae4df9df632eafbae9feb6c38b7df869033969 Mon Sep 17 00:00:00 2001 From: Jonathan Maw Date: Mon, 27 Oct 2014 14:56:01 +0000 Subject: [PATCH] ivi-controller: Make keyboard focus getters/setters support multiple surfaces --- weston-ivi-shell/src/ivi-controller.c | 3 ++- weston-ivi-shell/src/ivi-layout-export.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c index f341454..744d87c 100755 --- a/weston-ivi-shell/src/ivi-controller.c +++ b/weston-ivi-shell/src/ivi-controller.c @@ -1102,7 +1102,8 @@ controller_surface_set_input_focus(struct wl_client *client, if (device & IVI_CONTROLLER_SURFACE_INPUT_DEVICE_KEYBOARD) { if (enabled) { - ivi_layout_SetKeyboardFocusOn(ivisurf->layout_surface); + uint32_t id = ivi_layout_getIdOfSurface(ivisurf->layout_surface); + ivi_layout_SetKeyboardFocusOn(&id, 1); send_all_keyboard_focus(ivisurf->shell); } } diff --git a/weston-ivi-shell/src/ivi-layout-export.h b/weston-ivi-shell/src/ivi-layout-export.h index 3d1afc9..e1dbb06 100644 --- a/weston-ivi-shell/src/ivi-layout-export.h +++ b/weston-ivi-shell/src/ivi-layout-export.h @@ -697,7 +697,7 @@ ivi_layout_surfaceGetOpacity(struct ivi_layout_surface *ivisurf, * \return -1 if the method call was failed */ int32_t -ivi_layout_SetKeyboardFocusOn(struct ivi_layout_surface *ivisurf); +ivi_layout_SetKeyboardFocusOn(uint32_t *surface_ids, size_t size); /** * \brief Get the indentifier of the surface which hold the keyboard focus @@ -706,7 +706,7 @@ ivi_layout_SetKeyboardFocusOn(struct ivi_layout_surface *ivisurf); * \return -1 if the method call was failed */ int32_t -ivi_layout_GetKeyboardFocusSurfaceId(struct ivi_layout_surface **pSurfaceId); +ivi_layout_GetKeyboardFocusSurfaceId(uint32_t *surface_ids, size_t size, uint32_t *count); /** * \brief Set the destination area of a surface within a layer for rendering. -- 2.7.4