diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-08-05 23:11:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-05 23:11:26 -0400 |
commit | f95c02eebe54785a4f64332f7e574dddff7e3669 (patch) | |
tree | 0e29dfa81a30d6172c558d2b5df6d95f31a32b20 /examples/shared.c | |
parent | 41b98f21e50a6d57ba4b7fd8ba90066bba614e6a (diff) | |
parent | 5bf61ca7edb658737f3ccbaed0a99f4779d329bb (diff) |
Merge pull request #29 from ascent12/session
Moved session into backend/session and changed ownership
Diffstat (limited to 'examples/shared.c')
-rw-r--r-- | examples/shared.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/examples/shared.c b/examples/shared.c index 6d225a85..c66b8a23 100644 --- a/examples/shared.c +++ b/examples/shared.c @@ -8,7 +8,8 @@ #include <xkbcommon/xkbcommon.h> #include <wayland-server-protocol.h> #include <wlr/backend.h> -#include <wlr/session.h> +#include <wlr/backend/session.h> +#include <wlr/backend/multi.h> #include <wlr/types/wlr_output.h> #include <wlr/types/wlr_input_device.h> #include <wlr/util/log.h> @@ -44,8 +45,16 @@ static void keyboard_key_notify(struct wl_listener *listener, void *data) { } if (sym == XKB_KEY_Escape) { wl_display_terminate(kbstate->compositor->display); - } else if (key_state == WLR_KEY_PRESSED && sym >= XKB_KEY_F1 && sym <= XKB_KEY_F12) { - wlr_session_change_vt(kbstate->compositor->session, sym - XKB_KEY_F1 + 1); + } else if (key_state == WLR_KEY_PRESSED && + sym >= XKB_KEY_XF86Switch_VT_1 && + sym <= XKB_KEY_XF86Switch_VT_12) { + if (wlr_backend_is_multi(kbstate->compositor->backend)) { + struct wlr_session *session = + wlr_multi_get_session(kbstate->compositor->backend); + if (session) { + wlr_session_change_vt(session, sym - XKB_KEY_XF86Switch_VT_1 + 1); + } + } } } xkb_state_update_key(kbstate->xkb_state, keycode, @@ -440,12 +449,6 @@ static void output_remove_notify(struct wl_listener *listener, void *data) { void compositor_init(struct compositor_state *state) { state->display = wl_display_create(); state->event_loop = wl_display_get_event_loop(state->display); - state->session = wlr_session_start(state->display); - if (!state->session - || !state->display - || !state->event_loop) { - exit(1); - } wl_list_init(&state->keyboards); wl_list_init(&state->pointers); @@ -463,10 +466,8 @@ void compositor_init(struct compositor_state *state) { wl_list_init(&state->output_remove.link); state->output_remove.notify = output_remove_notify; - struct wlr_backend *wlr = wlr_backend_autocreate( - state->display, state->session); + struct wlr_backend *wlr = wlr_backend_autocreate(state->display); if (!wlr) { - wlr_session_finish(state->session); exit(1); } wl_signal_add(&wlr->events.input_add, &state->input_add); @@ -481,7 +482,6 @@ void compositor_init(struct compositor_state *state) { if (!socket) { wlr_log_errno(L_ERROR, "Unable to open wayland socket"); wlr_backend_destroy(wlr); - wlr_session_finish(state->session); exit(1); } @@ -490,7 +490,6 @@ void compositor_init(struct compositor_state *state) { if (!wlr_backend_init(state->backend)) { wlr_log(L_ERROR, "Failed to initialize backend"); wlr_backend_destroy(wlr); - wlr_session_finish(state->session); exit(1); } } @@ -498,6 +497,5 @@ void compositor_init(struct compositor_state *state) { void compositor_run(struct compositor_state *state) { wl_display_run(state->display); wlr_backend_destroy(state->backend); - wlr_session_finish(state->session); wl_display_destroy(state->display); } |