Xdg-shell surface doesn't become keyboard active in ivi-shell.
In ivi-shell, keyboard is not active for surfaces created with xdg-shell. I confirmed with hmi-controller and wayland-ivi-extension. I seems that this is because whether the surface was created with the ivi-application protocol is checked in activate_binding().
static struct ivi_shell_surface *
get_ivi_shell_surface(struct weston_surface *surface)
{
struct ivi_shell_surface *shsurf;
if (surface->committed != ivi_shell_surface_committed) //<-- here
return NULL;
shsurf = surface->committed_private;
assert(shsurf);
assert(shsurf->surface == surface);
return shsurf;
}
...
static void
activate_binding(struct weston_seat *seat,
struct weston_view *focus_view)
{
struct weston_surface *focus = focus_view->surface;
struct weston_surface *main_surface =
weston_surface_get_main_surface(focus);
if (get_ivi_shell_surface(main_surface) == NULL) //<-- here
return;
weston_seat_set_keyboard_focus(seat, focus);
}
Is there a reason for this?