forked from enlightenment/enlightenment
Implement multi-shift for illume-keyboard and change Default.kbd to use it.
Works well on my end and nobody complained about the patch in almost a week so if it's a problem, feel free to revert, but please explain me how to improve it. SVN revision: 57810
This commit is contained in:
parent
5b6527fbc6
commit
d5f998a4a4
|
@ -174,6 +174,7 @@ _e_kbd_int_layout_state_update(E_Kbd_Int *ki)
|
|||
if ((ki->layout.state & CTRL) && (ky->is_ctrl)) selected = 1;
|
||||
if ((ki->layout.state & ALT) && (ky->is_alt)) selected = 1;
|
||||
if ((ki->layout.state & CAPSLOCK) && (ky->is_capslock)) selected = 1;
|
||||
if ((ki->layout.state & (SHIFT | CAPSLOCK)) && (ky->is_multi_shift)) selected = 1;
|
||||
if (selected)
|
||||
{
|
||||
if (!ky->selected)
|
||||
|
@ -351,6 +352,24 @@ _e_kbd_int_key_press_handle(E_Kbd_Int *ki, E_Kbd_Int_Key *ky)
|
|||
_e_kbd_int_layout_state_update(ki);
|
||||
return;
|
||||
}
|
||||
if (ky->is_multi_shift)
|
||||
{
|
||||
if (ki->layout.state & SHIFT)
|
||||
{
|
||||
ki->layout.state &= (~(SHIFT));
|
||||
ki->layout.state |= CAPSLOCK;
|
||||
}
|
||||
else if (ki->layout.state & CAPSLOCK)
|
||||
{
|
||||
ki->layout.state &= (~(CAPSLOCK));
|
||||
}
|
||||
else
|
||||
{
|
||||
ki->layout.state |= SHIFT;
|
||||
}
|
||||
_e_kbd_int_layout_state_update(ki);
|
||||
return;
|
||||
}
|
||||
if (ky->is_ctrl)
|
||||
{
|
||||
if (ki->layout.state & CTRL) ki->layout.state &= (~(CTRL));
|
||||
|
@ -426,7 +445,7 @@ _e_kbd_int_key_press_handle(E_Kbd_Int *ki, E_Kbd_Int_Key *ky)
|
|||
}
|
||||
if (ki->layout.state & (SHIFT | CTRL | ALT))
|
||||
{
|
||||
ki->layout.state &= (~(SHIFT | CTRL | ALT));
|
||||
if( !(ky->is_multi_shift) ) ki->layout.state &= (~(SHIFT | CTRL | ALT));
|
||||
_e_kbd_int_layout_state_update(ki);
|
||||
}
|
||||
}
|
||||
|
@ -574,6 +593,7 @@ _e_kbd_int_zoomkey_up(E_Kbd_Int *ki)
|
|||
if ((ki->layout.state & CTRL) && (ky->is_ctrl)) selected = 1;
|
||||
if ((ki->layout.state & ALT) && (ky->is_alt)) selected = 1;
|
||||
if ((ki->layout.state & CAPSLOCK) && (ky->is_capslock)) selected = 1;
|
||||
if ((ki->layout.state & (SHIFT|CAPSLOCK)) && (ky->is_multi_shift)) selected = 1;
|
||||
if (selected)
|
||||
edje_object_signal_emit(o, "e,state,selected", "e");
|
||||
if (!selected)
|
||||
|
@ -997,6 +1017,7 @@ _e_kbd_int_layout_parse(E_Kbd_Int *ki, const char *layout)
|
|||
st->out = eina_stringshare_add(str);
|
||||
}
|
||||
if (!strcmp(str, "is_shift")) ky->is_shift = 1;
|
||||
if (!strcmp(str, "is_multi_shift")) ky->is_multi_shift = 1;
|
||||
if (!strcmp(str, "is_ctrl")) ky->is_ctrl = 1;
|
||||
if (!strcmp(str, "is_alt")) ky->is_alt = 1;
|
||||
if (!strcmp(str, "is_capslock")) ky->is_capslock = 1;
|
||||
|
|
|
@ -96,6 +96,7 @@ struct _E_Kbd_Int_Key
|
|||
unsigned char selected : 1;
|
||||
|
||||
unsigned char is_shift : 1;
|
||||
unsigned char is_multi_shift : 1;
|
||||
unsigned char is_ctrl : 1;
|
||||
unsigned char is_alt : 1;
|
||||
unsigned char is_capslock : 1;
|
||||
|
|
|
@ -14,86 +14,115 @@ icon alpha.png
|
|||
key 5 5 10 10
|
||||
normal q "q"
|
||||
shift Q "Q"
|
||||
capslock Q "Q"
|
||||
key 15 5 10 10
|
||||
normal w "w"
|
||||
shift W "W"
|
||||
capslock W "W"
|
||||
key 25 5 10 10
|
||||
normal e "e"
|
||||
shift E "E"
|
||||
capslock E "E"
|
||||
key 35 5 10 10
|
||||
normal r "r"
|
||||
shift R "R"
|
||||
capslock R "R"
|
||||
key 45 5 10 10
|
||||
normal t "t"
|
||||
shift T "T"
|
||||
capslock T "T"
|
||||
key 55 5 10 10
|
||||
normal y "y"
|
||||
shift Y "Y"
|
||||
capslock Y "Y"
|
||||
key 65 5 10 10
|
||||
normal u "u"
|
||||
shift U "U"
|
||||
capslock U "U"
|
||||
key 75 5 10 10
|
||||
normal i "i"
|
||||
shift I "I"
|
||||
capslock I "I"
|
||||
key 85 5 10 10
|
||||
normal o "o"
|
||||
shift O "O"
|
||||
capslock O "O"
|
||||
key 95 5 10 10
|
||||
normal p "p"
|
||||
shift P "P"
|
||||
capslock P "P"
|
||||
|
||||
key 10 15 10 10
|
||||
normal a "a"
|
||||
shift A "A"
|
||||
capslock A "A"
|
||||
key 20 15 10 10
|
||||
normal s "s"
|
||||
shift S "S"
|
||||
capslock S "S"
|
||||
key 30 15 10 10
|
||||
normal d "d"
|
||||
shift D "D"
|
||||
capslock D "D"
|
||||
key 40 15 10 10
|
||||
normal f "f"
|
||||
shift F "F"
|
||||
capslock F "F"
|
||||
key 50 15 10 10
|
||||
normal g "g"
|
||||
shift G "G"
|
||||
capslock G "G"
|
||||
key 60 15 10 10
|
||||
normal h "h"
|
||||
shift H "H"
|
||||
capslock H "H"
|
||||
key 70 15 10 10
|
||||
normal j "j"
|
||||
shift J "J"
|
||||
capslock J "J"
|
||||
key 80 15 10 10
|
||||
normal k "k"
|
||||
shift K "K"
|
||||
capslock K "K"
|
||||
key 90 15 10 10
|
||||
normal l "l"
|
||||
shift L "L"
|
||||
capslock L "L"
|
||||
|
||||
key 15 25 10 10
|
||||
normal z "z"
|
||||
shift Z "Z"
|
||||
capslock Z "Z"
|
||||
key 25 25 10 10
|
||||
normal x "x"
|
||||
shift X "X"
|
||||
capslock X "X"
|
||||
key 35 25 10 10
|
||||
normal c "c"
|
||||
shift C "C"
|
||||
capslock C "C"
|
||||
key 45 25 10 10
|
||||
normal v "v"
|
||||
shift V "V"
|
||||
capslock V "V"
|
||||
key 55 25 10 10
|
||||
normal b "b"
|
||||
shift B "B"
|
||||
capslock B "B"
|
||||
key 65 25 10 10
|
||||
normal n "n"
|
||||
shift N "N"
|
||||
capslock N "N"
|
||||
key 75 25 10 10
|
||||
normal m "m"
|
||||
shift M "M"
|
||||
capslock M "M"
|
||||
key 105 25 10 10
|
||||
normal shift.png
|
||||
is_shift
|
||||
# normal shift.png
|
||||
normal ↑
|
||||
shift ⇈
|
||||
capslock ⇊
|
||||
is_multi_shift
|
||||
|
||||
key 115 5 10 10
|
||||
normal . period
|
||||
|
|
Loading…
Reference in New Issue