summaryrefslogtreecommitdiff
authorhash <hash>2002-11-08 05:36:29 (UTC)
committer hash <hash>2002-11-08 05:36:29 (UTC)
commit8ddf8df51c6193c362d2767491d34ca841a9c6c7 (patch) (side-by-side diff)
tree26d55a25a0fcda215b2ecc98aa7747e8bed03b33
parent34cd9251667fe1b7f6ecae3cfe95c5450e0dbe7c (diff)
downloadopie-8ddf8df51c6193c362d2767491d34ca841a9c6c7.zip
opie-8ddf8df51c6193c362d2767491d34ca841a9c6c7.tar.gz
opie-8ddf8df51c6193c362d2767491d34ca841a9c6c7.tar.bz2
1. changed format from EUC-KR to UTF-8 (sorry about that)
2. made ctrl unsticky 3. the spanish accent and back accent shouldnt be the normal backtick char, so i changed them to the chars in 0x2c6 ~ 0x2cf (extended ticks and stuff)
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
@@ -361,13 +361,14 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
qkeycode = 0x2000;
}
}
// 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) {
// circumblex
qkeycode = 0x2000;
@@ -378,13 +379,14 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
qkeycode = 0x2002;
}
}
// Accent character support
- if (unicode == 0xb4) {
+ //if (unicode == 0xb4) {
+ if (unicode == 0x2ca) {
unicode = 0;
if (shift || lock) {
// diaeresis
qkeycode = 0x2001;
@@ -763,12 +765,19 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*)
*shift = 0; // unpress shift key
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
*
else if (meta && unicode != 0) {
@@ -1012,15 +1021,15 @@ 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
*
* the map with everything combined is at ac00 - d7a3
@@ -1054,55 +1063,55 @@ ushort Keyboard::parseKoreanInput (ushort c) {
return 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;
}
} else { // if any other char, cannot combine chars
@@ -1459,13 +1468,13 @@ void Keys::setKeysFromFile(const char * filename) {
ushort lower, shift;
QChar d;
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))) {
QTextStream tmp (buf, IO_ReadOnly);