diff options
author | Ran Benita <ran234@gmail.com> | 2013-07-28 16:21:40 +0300 |
---|---|---|
committer | Ran Benita <ran234@gmail.com> | 2013-07-31 10:58:25 +0300 |
commit | 990c09a3d096b29f3de026dc92b36edf1ccf0574 (patch) | |
tree | e62e26dd2a7649a50bebf9148f58dd973b8f1345 /src/keymap.c | |
parent | 5f787e5e91492b40804049d0c45ea64b25de0c49 (diff) | |
download | xorg-lib-libxkbcommon-990c09a3d096b29f3de026dc92b36edf1ccf0574.tar.gz |
keymap: update builtin fields directly in src/keymap.c
This fields are part of our API and every keymap should have them, not
just xkbcomp/ ones.
Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src/keymap.c')
-rw-r--r-- | src/keymap.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/keymap.c b/src/keymap.c index f8efd7b..4cb01c6 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -53,6 +53,26 @@ #include "keymap.h" #include "text.h" +static void +update_builtin_keymap_fields(struct xkb_keymap *keymap) +{ + struct xkb_context *ctx = keymap->ctx; + + /* + * Add predefined (AKA real, core, X11) modifiers. + * The order is important! + */ + darray_appends_t(keymap->mods, struct xkb_mod, + { .name = xkb_atom_intern_literal(ctx, "Shift"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Lock"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Control"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Mod1"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Mod2"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Mod3"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Mod4"), .type = MOD_REAL }, + { .name = xkb_atom_intern_literal(ctx, "Mod5"), .type = MOD_REAL }); +} + static struct xkb_keymap * xkb_keymap_new(struct xkb_context *ctx, enum xkb_keymap_format format, @@ -70,6 +90,8 @@ xkb_keymap_new(struct xkb_context *ctx, keymap->format = format; keymap->flags = flags; + update_builtin_keymap_fields(keymap); + return keymap; } |