Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • W weston
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 361
    • Issues 361
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 124
    • Merge requests 124
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • waylandwayland
  • weston
  • Issues
  • #630
Closed
Open
Issue created Jun 23, 2022 by Tomohito Esaki@etomContributor

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?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking