-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp index de3aa52..08318bd 100644 --- a/inputmethods/multikey/keyboard.cpp +++ b/inputmethods/multikey/keyboard.cpp | |||
@@ -364,7 +364,8 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
364 | 364 | ||
365 | // Back accent character support | 365 | // Back accent character support |
366 | 366 | ||
367 | if (unicode == 0x60) { | 367 | //if (unicode == 0x60) { // the keys from 2c6 ~ 2cf should be used instead of the ascii one |
368 | if (unicode == 0x2cb) { | ||
368 | 369 | ||
369 | unicode = 0; | 370 | unicode = 0; |
370 | if (shift || lock) { | 371 | if (shift || lock) { |
@@ -381,7 +382,8 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
381 | 382 | ||
382 | // Accent character support | 383 | // Accent character support |
383 | 384 | ||
384 | if (unicode == 0xb4) { | 385 | //if (unicode == 0xb4) { |
386 | if (unicode == 0x2ca) { | ||
385 | 387 | ||
386 | unicode = 0; | 388 | unicode = 0; |
387 | if (shift || lock) { | 389 | if (shift || lock) { |
@@ -766,6 +768,13 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*) | |||
766 | repaint(FALSE); | 768 | repaint(FALSE); |
767 | 769 | ||
768 | } | 770 | } |
771 | if (ctrl && unicode != 0) { | ||
772 | |||
773 | *ctrl = 0; | ||
774 | ctrl = 0; | ||
775 | repaint(FALSE); | ||
776 | |||
777 | } | ||
769 | 778 | ||
770 | /* | 779 | /* |
771 | * do not make the meta key release after being pressed | 780 | * do not make the meta key release after being pressed |
@@ -1015,9 +1024,9 @@ void Keyboard::loadKeyboardColors() { | |||
1015 | * | 1024 | * |
1016 | * all following chars means unicode char value and are in hex | 1025 | * all following chars means unicode char value and are in hex |
1017 | * | 1026 | * |
1018 | * ĆŹĄ½ = schar (start char) | 1027 | * ģ“ģ = schar (start char) |
1019 | * Įߥ½ = mchar (middle char) | 1028 | * ģ¤ģ = mchar (middle char) |
1020 | * ³”Ą½ = echar (end char) | 1029 | * ėģ = echar (end char) |
1021 | * | 1030 | * |
1022 | * there are 19 schars. unicode position is at 1100 - 1112 | 1031 | * there are 19 schars. unicode position is at 1100 - 1112 |
1023 | * there are 21 mchars. unicode position is at 1161 - 1175 | 1032 | * there are 21 mchars. unicode position is at 1161 - 1175 |
@@ -1057,49 +1066,49 @@ ushort Keyboard::parseKoreanInput (ushort c) { | |||
1057 | } | 1066 | } |
1058 | else { // must figure out what the echar is | 1067 | else { // must figure out what the echar is |
1059 | 1068 | ||
1060 | if (echar == 0x11a8) { // ¤” | 1069 | if (echar == 0x11a8) { // ć± |
1061 | 1070 | ||
1062 | if (c == 0x1100) echar = 0x11a9; // ¤” + ¤” | 1071 | if (c == 0x1100) echar = 0x11a9; // ć± + ć± |
1063 | else if (c == 0x1109) echar = 0x11aa; // ¤” + ¤µ | 1072 | else if (c == 0x1109) echar = 0x11aa; // ć± + ć |
1064 | else { | 1073 | else { |
1065 | schar = c; mchar = 0; echar = 0; | 1074 | schar = c; mchar = 0; echar = 0; |
1066 | return c; | 1075 | return c; |
1067 | } | 1076 | } |
1068 | 1077 | ||
1069 | } else if (echar == 0x11ab) { // ¤¤ | 1078 | } else if (echar == 0x11ab) { // ć“ |
1070 | 1079 | ||
1071 | if (c == 0x110c) echar = 0x11ac; // ¤¤ + ¤ø | 1080 | if (c == 0x110c) echar = 0x11ac; // ć“ + ć |
1072 | else if (c == 0x1112) echar = 0x11ad; // ¤¤ + ¤¾ | 1081 | else if (c == 0x1112) echar = 0x11ad; // ć“ + ć |
1073 | else { | 1082 | else { |
1074 | schar = c; mchar = 0; echar = 0; | 1083 | schar = c; mchar = 0; echar = 0; |
1075 | return c; | 1084 | return c; |
1076 | } | 1085 | } |
1077 | 1086 | ||
1078 | } else if (echar == 0x11af) { // ¤© | 1087 | } else if (echar == 0x11af) { // ć¹ |
1079 | 1088 | ||
1080 | if (c == 0x1100) echar = 0x11b0; // ¤© + ¤” | 1089 | if (c == 0x1100) echar = 0x11b0; // ć¹ + ć± |
1081 | else if (c == 0x1106) echar = 0x11b1; // ¤© + ¤± | 1090 | else if (c == 0x1106) echar = 0x11b1; // ć¹ + ć |
1082 | else if (c == 0x1107) echar = 0x11b2; // ¤© + ¤² | 1091 | else if (c == 0x1107) echar = 0x11b2; // ć¹ + ć |
1083 | else if (c == 0x1109) echar = 0x11b3; // ¤© + ¤µ | 1092 | else if (c == 0x1109) echar = 0x11b3; // ć¹ + ć |
1084 | else if (c == 0x1110) echar = 0x11b4; // ¤© + ¤¼ | 1093 | else if (c == 0x1110) echar = 0x11b4; // ć¹ + ć |
1085 | else if (c == 0x1111) echar = 0x11b5; // ¤© + ¤½ | 1094 | else if (c == 0x1111) echar = 0x11b5; // ć¹ + ć |
1086 | else if (c == 0x1112) echar = 0x11b6; // ¤© + ¤¾ | 1095 | else if (c == 0x1112) echar = 0x11b6; // ć¹ + ć |
1087 | else { | 1096 | else { |
1088 | schar = c; mchar = 0; echar = 0; | 1097 | schar = c; mchar = 0; echar = 0; |
1089 | return c; | 1098 | return c; |
1090 | } | 1099 | } |
1091 | 1100 | ||
1092 | } else if (echar == 0x11b8) { // ¤² | 1101 | } else if (echar == 0x11b8) { // ć |
1093 | 1102 | ||
1094 | if (c == 0x1109) echar = 0x11b9; // ¤² + ¤µ | 1103 | if (c == 0x1109) echar = 0x11b9; // ć + ć |
1095 | else { | 1104 | else { |
1096 | schar = c; mchar = 0; echar = 0; | 1105 | schar = c; mchar = 0; echar = 0; |
1097 | return c; | 1106 | return c; |
1098 | } | 1107 | } |
1099 | 1108 | ||
1100 | } else if (echar == 0x11ba) { // ¤µ | 1109 | } else if (echar == 0x11ba) { // ć |
1101 | 1110 | ||
1102 | if (c == 0x1109) echar = 0x11bb; // ¤µ + ¤µ | 1111 | if (c == 0x1109) echar = 0x11bb; // ć + ć |
1103 | else { | 1112 | else { |
1104 | schar = c; mchar = 0; echar = 0; | 1113 | schar = c; mchar = 0; echar = 0; |
1105 | return c; | 1114 | return c; |
@@ -1462,7 +1471,7 @@ void Keys::setKeysFromFile(const char * filename) { | |||
1462 | 1471 | ||
1463 | baccentMap.insert(lower, shift); | 1472 | baccentMap.insert(lower, shift); |
1464 | 1473 | ||
1465 | qDebug ("Estoy ańadiendo %i con %i", lower, shift); | 1474 | qDebug ("Estoy aadiendo %i con %i", lower, shift); |
1466 | buf = t.readLine(); | 1475 | buf = t.readLine(); |
1467 | } | 1476 | } |
1468 | // accent | 1477 | // accent |