-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 @@ -365,5 +365,6 @@ void Keyboard::mousePressEvent(QMouseEvent *e) // Back accent character support - if (unicode == 0x60) { + //if (unicode == 0x60) { // the keys from 2c6 ~ 2cf should be used instead of the ascii one + if (unicode == 0x2cb) { unicode = 0; @@ -382,5 +383,6 @@ void Keyboard::mousePressEvent(QMouseEvent *e) // Accent character support - if (unicode == 0xb4) { + //if (unicode == 0xb4) { + if (unicode == 0x2ca) { unicode = 0; @@ -767,4 +769,11 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*) } + if (ctrl && unicode != 0) { + + *ctrl = 0; + ctrl = 0; + repaint(FALSE); + + } /* @@ -1016,7 +1025,7 @@ void Keyboard::loadKeyboardColors() { * all following chars means unicode char value and are in hex * - * = schar (start char) - * = mchar (middle char) - * = echar (end char) + * 초음 = schar (start char) + * 중음 = mchar (middle char) + * 끝음 = echar (end char) * * there are 19 schars. unicode position is at 1100 - 1112 @@ -1058,8 +1067,8 @@ ushort Keyboard::parseKoreanInput (ushort c) { else { // must figure out what the echar is - if (echar == 0x11a8) { // + if (echar == 0x11a8) { // ㄱ - if (c == 0x1100) echar = 0x11a9; // + - else if (c == 0x1109) echar = 0x11aa; // + + if (c == 0x1100) echar = 0x11a9; // ㄱ + ㄱ + else if (c == 0x1109) echar = 0x11aa; // ㄱ + ㅅ else { schar = c; mchar = 0; echar = 0; @@ -1067,8 +1076,8 @@ ushort Keyboard::parseKoreanInput (ushort c) { } - } else if (echar == 0x11ab) { // + } else if (echar == 0x11ab) { // ㄴ - if (c == 0x110c) echar = 0x11ac; // + - else if (c == 0x1112) echar = 0x11ad; // + + if (c == 0x110c) echar = 0x11ac; // ㄴ + ㅈ + else if (c == 0x1112) echar = 0x11ad; // ㄴ + ㅎ else { schar = c; mchar = 0; echar = 0; @@ -1076,13 +1085,13 @@ ushort Keyboard::parseKoreanInput (ushort c) { } - } else if (echar == 0x11af) { // + } else if (echar == 0x11af) { // ㄹ - if (c == 0x1100) echar = 0x11b0; // + - else if (c == 0x1106) echar = 0x11b1; // + - else if (c == 0x1107) echar = 0x11b2; // + - else if (c == 0x1109) echar = 0x11b3; // + - else if (c == 0x1110) echar = 0x11b4; // + - else if (c == 0x1111) echar = 0x11b5; // + - else if (c == 0x1112) echar = 0x11b6; // + + if (c == 0x1100) echar = 0x11b0; // ㄹ + ㄱ + else if (c == 0x1106) echar = 0x11b1; // ㄹ + ㅁ + else if (c == 0x1107) echar = 0x11b2; // ㄹ + ㅂ + else if (c == 0x1109) echar = 0x11b3; // ㄹ + ㅅ + else if (c == 0x1110) echar = 0x11b4; // ㄹ + ㅌ + else if (c == 0x1111) echar = 0x11b5; // ㄹ + ㅍ + else if (c == 0x1112) echar = 0x11b6; // ㄹ + ㅎ else { schar = c; mchar = 0; echar = 0; @@ -1090,7 +1099,7 @@ ushort Keyboard::parseKoreanInput (ushort c) { } - } else if (echar == 0x11b8) { // + } else if (echar == 0x11b8) { // ㅂ - if (c == 0x1109) echar = 0x11b9; // + + if (c == 0x1109) echar = 0x11b9; // ㅂ + ㅅ else { schar = c; mchar = 0; echar = 0; @@ -1098,7 +1107,7 @@ ushort Keyboard::parseKoreanInput (ushort c) { } - } else if (echar == 0x11ba) { // + } else if (echar == 0x11ba) { // ㅅ - if (c == 0x1109) echar = 0x11bb; // + + if (c == 0x1109) echar = 0x11bb; // ㅅ + ㅅ else { schar = c; mchar = 0; echar = 0; @@ -1463,5 +1472,5 @@ void Keys::setKeysFromFile(const char * filename) { baccentMap.insert(lower, shift); - qDebug ("Estoy aadiendo %i con %i", lower, shift); + qDebug ("Estoy aadiendo %i con %i", lower, shift); buf = t.readLine(); } |