summaryrefslogtreecommitdiff
path: root/weston-ivi-shell
diff options
context:
space:
mode:
authorJonathan Maw <jonathan.maw@codethink.co.uk>2014-08-07 16:47:44 +0000
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>2014-11-06 17:18:34 +0900
commitd6d5ae7c3719bacf6a298b9e97955368ef1decf7 (patch)
tree713d969337a44f2c72f3d463fe1e430f2f90e19d /weston-ivi-shell
parent0965cf4d5a41402c4675e97ad531bab917b60d98 (diff)
downloadwayland-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-xweston-ivi-shell/src/ivi-controller.c10
-rw-r--r--weston-ivi-shell/src/ivi-layout-export.h1
-rw-r--r--weston-ivi-shell/src/ivi-layout.h1
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