chiark / gitweb /
Fix a few more typos
[elogind.git] / src / libsystemd-terminal / idev-keyboard.c
index 647aade9326a990d2d88b0cc0e868f4e7d79cf11..ab9e4811b3bb88837836968f12443c09732d034f 100644 (file)
@@ -312,17 +312,19 @@ static int kbdctx_locale_props_changed_fn(sd_bus *bus,
                                           sd_bus_message *signal,
                                           void *userdata,
                                           sd_bus_error *ret_err) {
-        _cleanup_bus_message_unref_ sd_bus_message *m = NULL;
         kbdctx *kc = userdata;
         int r;
 
         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);
@@ -332,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) {
@@ -551,6 +557,7 @@ int idev_keyboard_new(idev_device **out, idev_session *s, const char *name) {
 static void keyboard_free(idev_device *d) {
         idev_keyboard *k = keyboard_from_device(d);
 
+        xkb_state_unref(k->xkb_state);
         free(k->repdata.keyboard.codepoints);
         free(k->repdata.keyboard.keysyms);
         free(k->evdata.keyboard.codepoints);