weston_compositor_wake(ivi.compositor);
ivi_shell_create_global(&ivi);
- ivi_launch_shell_client(&ivi);
+
+ ivi_launch_shell_client(&ivi, "shell-client",
+ &ivi.shell_client.client);
+ ivi_launch_shell_client(&ivi, "shell-client-ext",
+ &ivi.shell_client_ext.client);
+
if (debug)
ivi_screenshooter_create(&ivi);
ivi_agl_systemd_notify(&ivi);
} shell_client;
struct {
+ struct wl_client *client;
struct wl_resource *resource;
bool doas_requested;
enum agl_shell_bound_status status;
ivi_shell_create_global(struct ivi_compositor *ivi);
int
-ivi_launch_shell_client(struct ivi_compositor *ivi);
+ivi_launch_shell_client(struct ivi_compositor *ivi, const char *cmd_section, struct wl_client **client);
int
ivi_desktop_init(struct ivi_compositor *ivi);
}
int
-ivi_launch_shell_client(struct ivi_compositor *ivi)
+ivi_launch_shell_client(struct ivi_compositor *ivi, const char *cmd_section,
+ struct wl_client **client)
{
struct process_info *pinfo;
struct weston_config_section *section;
char *command = NULL;
- section = weston_config_get_section(ivi->config, "shell-client",
- NULL, NULL);
+ section = weston_config_get_section(ivi->config, cmd_section, NULL, NULL);
if (section)
- weston_config_section_get_string(section, "command",
- &command, NULL);
+ weston_config_section_get_string(section, "command", &command, NULL);
if (!command)
return -1;
if (!pinfo->path)
goto out_free;
- ivi->shell_client.client = client_launch(ivi->compositor, &pinfo->proc,
- command, process_handle_sigchld);
- if (!ivi->shell_client.client)
+ *client = client_launch(ivi->compositor, &pinfo->proc, command, process_handle_sigchld);
+ if (!*client)
goto out_str;
return 0;