Signed-off-by: Herve Jourdain <herve.jourd...@neuf.fr> --- src/config-parser.c | 5 +++++ src/matchbox-keyboard-key.c | 11 ++++++++--- src/matchbox-keyboard-ui-cairo-backend.c | 10 +++++++--- src/matchbox-keyboard-ui-xft-backend.c | 10 +++++++--- src/matchbox-keyboard.c | 3 +++ src/matchbox-keyboard.h | 1 + 6 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/src/config-parser.c b/src/config-parser.c index 15a973e..13ee6d6 100644 --- a/src/config-parser.c +++ b/src/config-parser.c @@ -326,6 +326,10 @@ config_handle_key_subtag(MBKeyboardConfigState *state, { keystate = MBKeyboardKeyStateShifted; } + else if (streq(tag, "caps")) + { + keystate = MBKeyboardKeyStateCaps; + } else if (streq(tag, "mod1")) { keystate = MBKeyboardKeyStateMod1; @@ -548,6 +552,7 @@ config_xml_start_cb(void *data, const char *tag, const char **attr) else if (streq(tag, "normal") || streq(tag, "default") || streq(tag, "shifted") + || streq(tag, "caps") || streq(tag, "mod1") || streq(tag, "mod2") || streq(tag, "mod3")) diff --git a/src/matchbox-keyboard-key.c b/src/matchbox-keyboard-key.c index 0555c9c..c086fbe 100644 --- a/src/matchbox-keyboard-key.c +++ b/src/matchbox-keyboard-key.c @@ -413,9 +413,13 @@ mb_kbd_key_press(MBKeyboardKey *key) state = mb_kbd_keys_current_state(key->kbd); - if (mb_kbd_has_state(key->kbd, MBKeyboardStateCaps) - && mb_kbd_key_get_obey_caps(key)) - state = MBKeyboardKeyStateShifted; + if (mb_kbd_has_state(key->kbd, MBKeyboardStateCaps)) + { + if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps)) + state = MBKeyboardKeyStateCaps; + else if (mb_kbd_key_get_obey_caps(key)) + state = MBKeyboardKeyStateShifted; + } /* XXX below fakekey mods probably better in ui */ @@ -616,6 +620,7 @@ mb_kbd_key_dump_key(MBKeyboardKey *key) { /* MBKeyboardKeyStateNormal */ "Normal", /* MBKeyboardKeyStateShifted */ "Shifted" , + /* MBKeyboardKeyStateCaps */ "Caps" , /* MBKeyboardKeyStateMod1, */ "Mod1" , /* MBKeyboardKeyStateMod2, */ "Mod2" , /* MBKeyboardKeyStateMod3, */ "Mod3" diff --git a/src/matchbox-keyboard-ui-cairo-backend.c b/src/matchbox-keyboard-ui-cairo-backend.c index 3b7a401..3f15ac8 100644 --- a/src/matchbox-keyboard-ui-cairo-backend.c +++ b/src/matchbox-keyboard-ui-cairo-backend.c @@ -174,9 +174,13 @@ mb_kbd_ui_cairo_redraw_key(MBKeyboardUI *ui, MBKeyboardKey *key) state = mb_kbd_keys_current_state(kbd); - if (mb_kbd_has_state(kbd, MBKeyboardStateCaps) - && mb_kbd_key_get_obey_caps(key)) - state = MBKeyboardKeyStateShifted; + if (mb_kbd_has_state(kbd, MBKeyboardStateCaps)) + { + if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps)) + state = MBKeyboardKeyStateCaps; + else if (mb_kbd_key_get_obey_caps(key)) + state = MBKeyboardKeyStateShifted; + } if (!mb_kdb_key_has_state(key, state)) { diff --git a/src/matchbox-keyboard-ui-xft-backend.c b/src/matchbox-keyboard-ui-xft-backend.c index 9a3c6d2..2790591 100644 --- a/src/matchbox-keyboard-ui-xft-backend.c +++ b/src/matchbox-keyboard-ui-xft-backend.c @@ -212,9 +212,13 @@ mb_kbd_ui_xft_redraw_key(MBKeyboardUI *ui, MBKeyboardKey *key) state = mb_kbd_keys_current_state(kbd); - if (mb_kbd_has_state(kbd, MBKeyboardStateCaps) - && mb_kbd_key_get_obey_caps(key)) - state = MBKeyboardKeyStateShifted; + if (mb_kbd_has_state(kbd, MBKeyboardStateCaps)) + { + if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps)) + state = MBKeyboardKeyStateCaps; + else if (mb_kbd_key_get_obey_caps(key)) + state = MBKeyboardKeyStateShifted; + } if (!mb_kdb_key_has_state(key, state)) { diff --git a/src/matchbox-keyboard.c b/src/matchbox-keyboard.c index 9f9bb7d..3ed98c0 100644 --- a/src/matchbox-keyboard.c +++ b/src/matchbox-keyboard.c @@ -200,6 +200,9 @@ mb_kbd_keys_current_state(MBKeyboard *kbd) if (mb_kbd_has_state(kbd, MBKeyboardStateShifted)) return MBKeyboardKeyStateShifted; + if (mb_kbd_has_state(kbd, MBKeyboardStateCaps)) + return MBKeyboardKeyStateCaps; + if (mb_kbd_has_state(kbd, MBKeyboardStateMod1)) return MBKeyboardKeyStateMod1; diff --git a/src/matchbox-keyboard.h b/src/matchbox-keyboard.h index 4dd258f..430b08b 100644 --- a/src/matchbox-keyboard.h +++ b/src/matchbox-keyboard.h @@ -116,6 +116,7 @@ typedef enum { MBKeyboardKeyStateNormal = 0, MBKeyboardKeyStateShifted, + MBKeyboardKeyStateCaps, MBKeyboardKeyStateMod1, MBKeyboardKeyStateMod2, MBKeyboardKeyStateMod3, -- 2.7.4 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto