summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp57
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();
}