wlserver: start all Xwayland processes in parallel
The next commit will need to inspect wlserver.wlr.xwayland_servers to figure out which wl_output global to expose.
This commit is contained in:
parent
ec1ce12f13
commit
697818a228
1 changed files with 5 additions and 3 deletions
|
@ -794,16 +794,18 @@ bool wlserver_init( void ) {
|
|||
for (int i = 0; i < g_nXWaylandCount; i++)
|
||||
{
|
||||
auto server = std::make_unique<gamescope_xwayland_server_t>(wlserver.display);
|
||||
wlserver.wlr.xwayland_servers.emplace_back(std::move(server));
|
||||
}
|
||||
|
||||
while (!server->is_xwayland_ready()) {
|
||||
for (size_t i = 0; i < wlserver.wlr.xwayland_servers.size(); i++)
|
||||
{
|
||||
while (!wlserver.wlr.xwayland_servers[i]->is_xwayland_ready()) {
|
||||
wl_display_flush_clients(wlserver.display);
|
||||
if (wl_event_loop_dispatch(wlserver.event_loop, -1) < 0) {
|
||||
wl_log.errorf("wl_event_loop_dispatch failed\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
wlserver.wlr.xwayland_servers.emplace_back(std::move(server));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue