diff options
author | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2014-08-07 16:47:44 +0000 |
---|---|---|
committer | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> | 2014-11-06 17:18:34 +0900 |
commit | d6d5ae7c3719bacf6a298b9e97955368ef1decf7 (patch) | |
tree | 713d969337a44f2c72f3d463fe1e430f2f90e19d /weston-ivi-shell | |
parent | 0965cf4d5a41402c4675e97ad531bab917b60d98 (diff) | |
download | wayland-ivi-extension-d6d5ae7c3719bacf6a298b9e97955368ef1decf7.tar.gz |
weston-ivi-shell and ilmControl: Implement 'set keyboard focus'
This commit implements ilm_SetKeyboardFocusOn by using the "ivi
controller surface" interface, implementing the specific case
of keyboard focus.
It expands ivi-layout.h and ivi-layout-export.h so that keyboard
focus can be stored on a per-surface basis.
Signed-off-by: James Thomas <james.thomas@codethink.co.uk>
Diffstat (limited to 'weston-ivi-shell')
-rwxr-xr-x | weston-ivi-shell/src/ivi-controller.c | 10 | ||||
-rw-r--r-- | weston-ivi-shell/src/ivi-layout-export.h | 1 | ||||
-rw-r--r-- | weston-ivi-shell/src/ivi-layout.h | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c index 807b616..0f152e1 100755 --- a/weston-ivi-shell/src/ivi-controller.c +++ b/weston-ivi-shell/src/ivi-controller.c @@ -1071,9 +1071,13 @@ controller_surface_set_input_focus(struct wl_client *client, int32_t enabled) { (void)client; - (void)resource; - (void)device; - (void)enabled; + struct ivisurface *ivisurf = wl_resource_get_user_data(resource); + + if (device & IVI_CONTROLLER_SURFACE_INPUT_DEVICE_KEYBOARD) { + if (enabled) { + ivi_layout_SetKeyboardFocusOn(ivisurf->layout_surface); + } + } } static const diff --git a/weston-ivi-shell/src/ivi-layout-export.h b/weston-ivi-shell/src/ivi-layout-export.h index f24fa99..3d1afc9 100644 --- a/weston-ivi-shell/src/ivi-layout-export.h +++ b/weston-ivi-shell/src/ivi-layout-export.h @@ -68,6 +68,7 @@ enum ivi_layout_notification_mask { IVI_NOTIFICATION_ADD = (1 << 9), IVI_NOTIFICATION_REMOVE = (1 << 10), IVI_NOTIFICATION_CONFIGURE = (1 << 11), + IVI_NOTIFICATION_KEYBOARD_FOCUS = (1 << 12), IVI_NOTIFICATION_ALL = 0xFFFF }; diff --git a/weston-ivi-shell/src/ivi-layout.h b/weston-ivi-shell/src/ivi-layout.h index 8cca33c..7a53733 100644 --- a/weston-ivi-shell/src/ivi-layout.h +++ b/weston-ivi-shell/src/ivi-layout.h @@ -87,6 +87,7 @@ struct ivi_layout_SurfaceProperties int32_t creatorPid; int32_t transitionType; uint32_t transitionDuration; + uint32_t hasKeyboardFocus; }; struct ivi_layout_LayerProperties |