wlserver: wait for Xwayland to be ready in wlserver_init
We''l be able to move some init bits out of wlserver with this.
This commit is contained in:
parent
25b036a2d6
commit
0f0489b455
1 changed files with 12 additions and 0 deletions
|
@ -63,6 +63,8 @@ enum wlserver_touch_click_mode g_nTouchClickMode = WLSERVER_TOUCH_CLICK_LEFT;
|
||||||
|
|
||||||
static struct wl_list pending_surfaces = {0};
|
static struct wl_list pending_surfaces = {0};
|
||||||
|
|
||||||
|
static bool bXwaylandReady = false;
|
||||||
|
|
||||||
static void wlserver_surface_set_wlr( struct wlserver_surface *surf, struct wlr_surface *wlr_surf );
|
static void wlserver_surface_set_wlr( struct wlserver_surface *surf, struct wlr_surface *wlr_surf );
|
||||||
|
|
||||||
void sig_handler(int signal)
|
void sig_handler(int signal)
|
||||||
|
@ -110,6 +112,8 @@ const struct wlr_surface_role xwayland_surface_role = {
|
||||||
|
|
||||||
static void xwayland_ready(struct wl_listener *listener, void *data)
|
static void xwayland_ready(struct wl_listener *listener, void *data)
|
||||||
{
|
{
|
||||||
|
bXwaylandReady = true;
|
||||||
|
|
||||||
setenv("DISPLAY", wlserver.wlr.xwayland_server->display_name, true);
|
setenv("DISPLAY", wlserver.wlr.xwayland_server->display_name, true);
|
||||||
|
|
||||||
g_XWLDpy = XOpenDisplay( wlserver.wlr.xwayland_server->display_name );
|
g_XWLDpy = XOpenDisplay( wlserver.wlr.xwayland_server->display_name );
|
||||||
|
@ -589,6 +593,14 @@ int wlserver_init(int argc, char **argv, bool bIsNested) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (!bXwaylandReady) {
|
||||||
|
wl_display_flush_clients(wlserver.wl_display);
|
||||||
|
if (wl_event_loop_dispatch(wlserver.wl_event_loop, -1) < 0) {
|
||||||
|
fprintf(stderr, "wlserver: wl_event_loop_dispatch failed");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
wlr_output_enable( wlserver.wlr.output, true );
|
wlr_output_enable( wlserver.wlr.output, true );
|
||||||
wlr_output_set_custom_mode( wlserver.wlr.output, g_nNestedWidth, g_nNestedHeight, g_nOutputRefresh * 1000 );
|
wlr_output_set_custom_mode( wlserver.wlr.output, g_nNestedWidth, g_nNestedHeight, g_nOutputRefresh * 1000 );
|
||||||
wlr_output_commit( wlserver.wlr.output );
|
wlr_output_commit( wlserver.wlr.output );
|
||||||
|
|
Loading…
Reference in a new issue