X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Fevcat.c;h=9e8a262b79ae6fb7d2a5aa5169dc799ffc875da1;hb=ed7fb9cb235d2aedb755dcb8a5a5d9cdffba1519;hp=590a30d8735bce1111c913352e4dc4ac8fdf11f6;hpb=8e9371905c743cf997b2e8fa7fe3238f81f741fe;p=elogind.git diff --git a/src/libsystemd-terminal/evcat.c b/src/libsystemd-terminal/evcat.c index 590a30d87..9e8a262b7 100644 --- a/src/libsystemd-terminal/evcat.c +++ b/src/libsystemd-terminal/evcat.c @@ -203,6 +203,9 @@ static void kdata_print(idev_data *data) { k->value == 1 ? "DOWN" : "REPEAT"); + /* Resync state */ + printf(" | %-6s", data->resync ? "RESYNC" : ""); + /* Keycode that triggered the event */ printf(" | %5u", (unsigned)k->keycode); @@ -216,6 +219,13 @@ static void kdata_print(idev_data *data) { printf(" %-5s", (k->mods & IDEV_KBDMOD_LINUX) ? "LINUX" : ""); printf(" %-4s", (k->mods & IDEV_KBDMOD_CAPS) ? "CAPS" : ""); + /* Consumed modifiers */ + printf(" | %-5s", (k->consumed_mods & IDEV_KBDMOD_SHIFT) ? "SHIFT" : ""); + printf(" %-4s", (k->consumed_mods & IDEV_KBDMOD_CTRL) ? "CTRL" : ""); + printf(" %-3s", (k->consumed_mods & IDEV_KBDMOD_ALT) ? "ALT" : ""); + printf(" %-5s", (k->consumed_mods & IDEV_KBDMOD_LINUX) ? "LINUX" : ""); + printf(" %-4s", (k->consumed_mods & IDEV_KBDMOD_CAPS) ? "CAPS" : ""); + /* Resolved symbols */ printf(" |"); for (i = 0; i < k->n_syms; ++i) { @@ -313,8 +323,6 @@ static int evcat_sysview_fn(sysview_context *c, void *userdata, sysview_event *e return r; } - idev_session_enable(e->idev_session); - if (e->managed) { r = sysview_session_take_control(ev->session_add.session); if (r < 0) { @@ -323,11 +331,14 @@ static int evcat_sysview_fn(sysview_context *c, void *userdata, sysview_event *e } } + idev_session_enable(e->idev_session); + break; case SYSVIEW_EVENT_SESSION_REMOVE: idev_session_disable(e->idev_session); e->idev_session = idev_session_free(e->idev_session); - sd_event_exit(e->event, 0); + if (sd_event_get_exit_code(e->event, &r) == -ENODATA) + sd_event_exit(e->event, 0); break; case SYSVIEW_EVENT_SESSION_ATTACH: d = ev->session_attach.device;