ilm_SetKeyboardFocusOn(t_ilm_surface surfaceId)
{
ilmErrorTypes returnValue = ILM_FAILED;
- (void)surfaceId;
- returnValue = ILM_SUCCESS;
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
+ struct surface_context *ctx_surf =
+ get_surface_context(&ctx->wl, (uint32_t)surfaceId);
+
+ if (ctx_surf != NULL
+ && ctx_surf->prop.inputDevicesAcceptance & ILM_INPUT_DEVICE_KEYBOARD)
+ {
+ ivi_controller_surface_set_input_focus(ctx_surf->controller,
+ IVI_CONTROLLER_SURFACE_INPUT_DEVICE_KEYBOARD, 1);
+ returnValue = ILM_SUCCESS;
+ }
+ release_instance();
return returnValue;
}
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
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
};
int32_t creatorPid;
int32_t transitionType;
uint32_t transitionDuration;
+ uint32_t hasKeyboardFocus;
};
struct ivi_layout_LayerProperties