diff --git a/cage.c b/cage.c index af2fc4f..53d1e35 100644 --- a/cage.c +++ b/cage.c @@ -293,7 +293,7 @@ main(int argc, char *argv[]) struct wl_event_source *sigterm_source = wl_event_loop_add_signal(event_loop, SIGTERM, handle_signal, &server.wl_display); - server.backend = wlr_backend_autocreate(server.wl_display); + server.backend = wlr_backend_autocreate(server.wl_display, &server.session); if (!server.backend) { wlr_log(WLR_ERROR, "Unable to create the wlroots backend"); ret = 1; diff --git a/seat.c b/seat.c index f67af68..d047b59 100644 --- a/seat.c +++ b/seat.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -263,10 +264,9 @@ handle_keybinding(struct cg_server *server, xkb_keysym_t sym) #endif if (server->allow_vt_switch && sym >= XKB_KEY_XF86Switch_VT_1 && sym <= XKB_KEY_XF86Switch_VT_12) { if (wlr_backend_is_multi(server->backend)) { - struct wlr_session *session = wlr_backend_get_session(server->backend); - if (session) { + if (server->session) { unsigned vt = sym - XKB_KEY_XF86Switch_VT_1 + 1; - wlr_session_change_vt(session, vt); + wlr_session_change_vt(server->session, vt); } } } else { diff --git a/server.h b/server.h index de58456..fef4b5e 100644 --- a/server.h +++ b/server.h @@ -24,6 +24,7 @@ struct cg_server { struct wlr_backend *backend; struct wlr_renderer *renderer; struct wlr_allocator *allocator; + struct wlr_session *session; struct cg_seat *seat; struct wlr_idle *idle;