Add xkb_state_get_map() This is very useful because it avoids redundent pointers in structs and/or parameter passing in the application. Signed-off-by: Ran Benita <ran234@gmail.com>
diff --git a/include/xkbcommon/xkbcommon.h b/include/xkbcommon/xkbcommon.h
index 185d11b..4eeaaca 100644
--- a/include/xkbcommon/xkbcommon.h
+++ b/include/xkbcommon/xkbcommon.h
@@ -423,6 +423,12 @@ xkb_state_ref(struct xkb_state *state);
void
xkb_state_unref(struct xkb_state *state);
+/**
+ * Get the keymap from which the state object was created.
+ */
+struct xkb_keymap *
+xkb_state_get_map(struct xkb_state *state);
+
enum xkb_key_direction {
XKB_KEY_UP,
XKB_KEY_DOWN,
diff --git a/src/state.c b/src/state.c
index 45820b6..8394050 100644
--- a/src/state.c
+++ b/src/state.c
@@ -494,6 +494,12 @@ xkb_state_unref(struct xkb_state *state)
free(state);
}
+_X_EXPORT struct xkb_keymap *
+xkb_state_get_map(struct xkb_state *state)
+{
+ return state->xkb;
+}
+
/**
* Update the LED state to match the rest of the xkb_state.
*/