summaryrefslogtreecommitdiff
authorhash <hash>2002-11-08 05:48:13 (UTC)
committer hash <hash>2002-11-08 05:48:13 (UTC)
commit585e766bcb974079957dabcbaf487c21211caa8b (patch) (side-by-side diff)
tree672f8670a0ec70b3e7ff3a079800bc12d9f82f8e
parent6cb72a24dead3f2f1a122cbe6e9dcc43be86443a (diff)
downloadopie-585e766bcb974079957dabcbaf487c21211caa8b.zip
opie-585e766bcb974079957dabcbaf487c21211caa8b.tar.gz
opie-585e766bcb974079957dabcbaf487c21211caa8b.tar.bz2
alt shouldnt stick either
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 08318bd..84c0c74 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -355,43 +355,42 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
// diaeresis
qkeycode = 0x2001;
}
else {
// circumflex
qkeycode = 0x2000;
}
}
// Back accent character support
- //if (unicode == 0x60) { // the keys from 2c6 ~ 2cf should be used instead of the ascii one
+ // the keys from 2c6 ~ 2cf should be used instead of the ascii one
if (unicode == 0x2cb) {
unicode = 0;
if (shift || lock) {
// circumblex
qkeycode = 0x2000;
}
else {
// back accent
qkeycode = 0x2002;
}
}
// Accent character support
- //if (unicode == 0xb4) {
if (unicode == 0x2ca) {
unicode = 0;
if (shift || lock) {
// diaeresis
qkeycode = 0x2001;
}
else {
// accent
qkeycode = 0x2003;
@@ -516,26 +515,26 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
} else {
meta = keys->pressedPtr(row, col);
*meta = true;
}
// reset all the other keys
if (shift) { *shift = 0; shift = 0; }
if (lock) { *lock = 0; lock = 0; }
if (circumflex) { *circumflex = 0; circumflex = 0; }
if (diaeresis) { *diaeresis = 0; diaeresis = 0; }
- if (baccent) { *baccent = 0; baccent = 0; }
- if (accent) { *accent = 0; accent = 0; }
+ if (baccent) { *baccent = 0; baccent = 0; }
+ if (accent) { *accent = 0; accent = 0; }
// dont need to emit this key... acts same as alt
qkeycode = 0;
// circumflex
} else if (qkeycode == 0x2000) {
need_repaint = TRUE;
if (circumflex) {
*circumflex = 0;
circumflex = 0;
@@ -616,63 +615,63 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
*baccent = 0;
baccent = 0;
} else {
baccent = keys->pressedPtr(row, col);
*baccent = true;
}
if (shift) { *shift = 0; shift = 0; }
if (meta) { *meta = 0; meta = 0; }
- if (accent) { *accent = 0; accent = 0; }
+ if (accent) { *accent = 0; accent = 0; }
qkeycode = 0;
// Accent
} else if (qkeycode == 0x2003) {
need_repaint = TRUE;
if (accent) {
*accent = 0;
accent = 0;
} else {
accent = keys->pressedPtr(row, col);
*accent = true;
}
if (shift) { *shift = 0; shift = 0; }
if (meta) { *meta = 0; meta = 0; }
- if (baccent) { *baccent = 0; }
+ if (baccent) { *baccent = 0; }
qkeycode = 0;
}
}
else { // normal char
if ((shift || lock) && keys->shift(unicode)) {
// make diaeresis/circumflex -> shift input shifted
// diaeresis/circumflex chars
if (circumflex && keys->circumflex(keys->shift(unicode)))
unicode = keys->circumflex(keys->shift(unicode));
else if (diaeresis && keys->diaeresis(keys->shift(unicode)))
unicode = keys->diaeresis(keys->shift(unicode));
- else if (baccent && keys->baccent(keys->shift(unicode)))
+ else if (baccent && keys->baccent(keys->shift(unicode)))
unicode = keys->baccent(keys->shift(unicode));
else if (accent && keys->accent(keys->shift(unicode)))
unicode = keys->accent(keys->shift(unicode));
else if (meta && keys->meta(keys->shift(unicode)))
unicode = keys->meta(keys->shift(unicode));
else
unicode = keys->shift(unicode);
}
else if (meta && keys->meta(unicode)) {
unicode = keys->meta(unicode);
}
else if (circumflex && keys->circumflex(unicode)) {
@@ -766,24 +765,31 @@ 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);
}
+ if (alt && alt != 0) {
+
+ *alt = 0;
+ alt = 0;
+ repaint(FALSE);
+
+ }
/*
* do not make the meta key release after being pressed
*
else if (meta && unicode != 0) {
*meta = 0;
meta = 0;
repaint(FALSE);
}