summaryrefslogtreecommitdiff
path: root/inputmethods
Side-by-side diff
Diffstat (limited to 'inputmethods') (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
@@ -363,9 +363,10 @@ 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;
if (shift || lock) {
@@ -380,9 +381,10 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
}
// Accent character support
- if (unicode == 0xb4) {
+ //if (unicode == 0xb4) {
+ if (unicode == 0x2ca) {
unicode = 0;
if (shift || lock) {
@@ -765,8 +767,15 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*)
shift = 0; // reset the shift pointer
repaint(FALSE);
}
+ if (ctrl && unicode != 0) {
+
+ *ctrl = 0;
+ ctrl = 0;
+ repaint(FALSE);
+
+ }
/*
* do not make the meta key release after being pressed
*
@@ -1014,11 +1023,11 @@ void Keyboard::loadKeyboardColors() {
* how korean input works
*
* 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
* there are 21 mchars. unicode position is at 1161 - 1175
* there are 27 echars. unicode position is at 11a8 - 11c2
@@ -1056,51 +1065,51 @@ 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;
return 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;
return 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;
return 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;
return 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;
return c;
}
@@ -1461,9 +1470,9 @@ void Keys::setKeysFromFile(const char * filename) {
tmp >> d >> lower >> shift;
baccentMap.insert(lower, shift);
- qDebug ("Estoy aadiendo %i con %i", lower, shift);
+ qDebug ("Estoy aadiendo %i con %i", lower, shift);
buf = t.readLine();
}
// accent
else if (buf.contains(QRegExp("^\\s*a\\s+[0-9a-fx]+\\s+[0-9a-fx]+\\s*$", FALSE, FALSE))) {