X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Fidev-keyboard.c;h=d5936b7d236ab983b040a3b43ef0fb40ea1ac668;hb=6022343476982439dfc2e06bf54db78a0c8c6bff;hp=03f54bb74f32c6ad94432c2a19666157dfd47e2b;hpb=200716a628b70fe723e7d4e09bb2ece10c10bdc0;p=elogind.git diff --git a/src/libsystemd-terminal/idev-keyboard.c b/src/libsystemd-terminal/idev-keyboard.c index 03f54bb74..d5936b7d2 100644 --- a/src/libsystemd-terminal/idev-keyboard.c +++ b/src/libsystemd-terminal/idev-keyboard.c @@ -317,11 +317,14 @@ static int kbdctx_locale_props_changed_fn(sd_bus *bus, kc->slot_locale_get_all = sd_bus_slot_unref(kc->slot_locale_get_all); + /* skip interface name */ + r = sd_bus_message_skip(signal, "s"); + if (r < 0) + goto error; + r = bus_message_map_properties_changed(bus, signal, kbdctx_locale_map, kc); - if (r < 0) { - log_debug("idev-keyboard: cannot handle PropertiesChanged from locale1: %s", strerror(-r)); - return r; - } + if (r < 0) + goto error; if (r > 0) { r = kbdctx_query_locale(kc); @@ -331,6 +334,10 @@ static int kbdctx_locale_props_changed_fn(sd_bus *bus, kbdctx_refresh_keymap(kc); return 0; + +error: + log_debug("idev-keyboard: cannot handle PropertiesChanged from locale1: %s", strerror(-r)); + return r; } static int kbdctx_setup_bus(kbdctx *kc) { @@ -763,8 +770,10 @@ static int keyboard_feed_evdev(idev_keyboard *k, idev_data *data) { /* TODO: update LEDs */ } - if (num < 0) + if (num < 0) { + r = num; goto error; + } r = keyboard_fill(k, &k->evdata, data->resync, ev->code, ev->value, num, keysyms); if (r < 0)