Also spew wayland display name through session pipe.

This commit is contained in:
Pierre-Loup A. Griffais 2021-04-27 21:17:36 -07:00
parent a85c8d761c
commit 2bb4907993
4 changed files with 18 additions and 12 deletions

View file

@ -349,7 +349,7 @@ retry:
listCommitsDone.push_back( commitID );
}
static Display *threadDPY = XOpenDisplay ( wlserver_get_nested_display() );
static Display *threadDPY = XOpenDisplay ( wlserver_get_nested_display_name() );
XSendEvent( threadDPY, ourWindow, True, SubstructureRedirectMask, &nudgeEvent );
XFlush( threadDPY );
@ -2758,7 +2758,7 @@ steamcompmgr_main (int argc, char **argv)
alwaysComposite = True;
}
dpy = XOpenDisplay ( wlserver_get_nested_display() );
dpy = XOpenDisplay ( wlserver_get_nested_display_name() );
if (!dpy)
{
fprintf (stderr, "Can't open display\n");
@ -2906,7 +2906,7 @@ steamcompmgr_main (int argc, char **argv)
if ( readyPipeFD != -1 )
{
dprintf( readyPipeFD, "%s\n", wlserver_get_nested_display() );
dprintf( readyPipeFD, "%s %s\n", wlserver_get_nested_display_name(), wlserver_get_wl_display_name() );
close( readyPipeFD );
readyPipeFD = -1;
}

View file

@ -67,7 +67,7 @@ void vblankThreadRun( void )
void vblank_init( void )
{
g_nestedDpy = XOpenDisplay( wlserver_get_nested_display() );
g_nestedDpy = XOpenDisplay( wlserver_get_nested_display_name() );
assert( g_nestedDpy != nullptr );
g_lastVblank = get_time_in_nanos();

View file

@ -563,15 +563,14 @@ int wlserver_init(int argc, char **argv, bool bIsNested) {
};
wlserver.wlr.xwayland_server = wlr_xwayland_server_create(wlserver.wl_display, &xwayland_options);
wl_signal_add(&wlserver.wlr.xwayland_server->events.ready, &xwayland_ready_listener);
char wayland_display_name[32];
int result = -1;
int display_slot = 0;
while ( result != 0 && display_slot < 128 )
{
sprintf( wayland_display_name, "gamescope-%d", display_slot );
result = wl_display_add_socket( wlserver.wl_display, wayland_display_name );
sprintf( wlserver.wl_display_name, "gamescope-%d", display_slot );
result = wl_display_add_socket( wlserver.wl_display, wlserver.wl_display_name );
display_slot++;
}
@ -585,9 +584,9 @@ int wlserver_init(int argc, char **argv, bool bIsNested) {
wlserver.wlr.seat = wlr_seat_create(wlserver.wl_display, "seat0");
wlr_seat_set_capabilities( wlserver.wlr.seat, WL_SEAT_CAPABILITY_POINTER | WL_SEAT_CAPABILITY_KEYBOARD | WL_SEAT_CAPABILITY_TOUCH );
wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", wayland_display_name);
wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", wlserver.wl_display_name);
setenv("GAMESCOPE_WAYLAND_DISPLAY", wayland_display_name, 1);
setenv("GAMESCOPE_WAYLAND_DISPLAY", wlserver.wl_display_name, 1);
if (!wlr_backend_start( wlserver.wlr.multi_backend ))
{
@ -727,11 +726,16 @@ void wlserver_send_frame_done( struct wlr_surface *surf, const struct timespec *
wlr_surface_send_frame_done( surf, when );
}
const char *wlserver_get_nested_display( void )
const char *wlserver_get_nested_display_name( void )
{
return wlserver.wlr.xwayland_server->display_name;
}
const char *wlserver_get_wl_display_name( void )
{
return wlserver.wl_display_name;
}
static void handle_surface_destroy( struct wl_listener *l, void *data )
{
struct wlserver_surface *surf = wl_container_of( l, surf, destroy );

View file

@ -12,6 +12,7 @@ struct wlserver_t {
struct wl_display *wl_display;
struct wl_event_loop *wl_event_loop;
int wl_event_loop_fd;
char wl_display_name[32];
struct {
struct wlr_backend *multi_backend;
@ -84,7 +85,8 @@ void wlserver_mousewheel( int x, int y, uint32_t time );
void wlserver_send_frame_done( struct wlr_surface *surf, const struct timespec *when );
const char *wlserver_get_nested_display( void );
const char *wlserver_get_nested_display_name( void );
const char *wlserver_get_wl_display_name( void );
struct wlserver_surface
{