[yocto] [matchbox-keyboard][PATCH ] Support of "caps" tag
Herve Jourdain
herve.jourdain at neuf.fr
Tue May 17 22:51:22 PDT 2016
Signed-off-by: Herve Jourdain <herve.jourdain at 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
More information about the yocto
mailing list