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++)
|
for (int i = 0; i < g_nXWaylandCount; i++)
|
||||||
{
|
{
|
||||||
auto server = std::make_unique<gamescope_xwayland_server_t>(wlserver.display);
|
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);
|
wl_display_flush_clients(wlserver.display);
|
||||||
if (wl_event_loop_dispatch(wlserver.event_loop, -1) < 0) {
|
if (wl_event_loop_dispatch(wlserver.event_loop, -1) < 0) {
|
||||||
wl_log.errorf("wl_event_loop_dispatch failed\n");
|
wl_log.errorf("wl_event_loop_dispatch failed\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wlserver.wlr.xwayland_servers.emplace_back(std::move(server));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue