summaryrefslogtreecommitdiff
authorhash <hash>2002-08-22 04:33:16 (UTC)
committer hash <hash>2002-08-22 04:33:16 (UTC)
commitea0d66f137984689c4d4ef6da7dd4b7323760e8c (patch) (side-by-side diff)
tree75332072b67132ef7fd7559578b7f02405d69a88
parentee90b966cfc262770ef5a45c2bad0af6766245a2 (diff)
downloadopie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.zip
opie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.tar.gz
opie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.tar.bz2
fixed nasty bug related to ctrl and alt keys
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index d5a7afd..7098a6b 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -281,56 +281,74 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
if (qkeycode == Qt::Key_F1) { // toggle the pickboard
if ( configdlg ) {
delete (ConfigDlg *) configdlg;
configdlg = 0;
}
else {
configdlg = new ConfigDlg ();
connect(configdlg, SIGNAL(setMapToDefault()),
this, SLOT(setMapToDefault()));
connect(configdlg, SIGNAL(setMapToFile(QString)),
this, SLOT(setMapToFile(QString)));
connect(configdlg, SIGNAL(pickboardToggled(bool)),
this, SLOT(togglePickboard(bool)));
connect(configdlg, SIGNAL(repeatToggled(bool)),
this, SLOT(toggleRepeat(bool)));
connect(configdlg, SIGNAL(reloadKeyboard()),
this, SLOT(reloadKeyboard()));
configdlg->showMaximized();
configdlg->show();
configdlg->raise();
}
} else if (qkeycode == Qt::Key_Control) {
- ctrl = keys->pressedPtr(row, col);
- need_repaint = TRUE;
- *ctrl = !keys->pressed(row, col);
+
+ if (ctrl) {
+
+ *ctrl = 0;
+ ctrl = 0;
+
+ } else {
+
+ ctrl = keys->pressedPtr(row, col);
+ need_repaint = TRUE;
+ *ctrl = !keys->pressed(row, col);
+
+ }
} else if (qkeycode == Qt::Key_Alt) {
- alt = keys->pressedPtr(row, col);
- need_repaint = TRUE;
- *alt = !keys->pressed(row, col);
+
+ if (alt) {
+ *alt = 0;
+ alt = 0;
+
+ } else {
+
+ alt = keys->pressedPtr(row, col);
+ need_repaint = TRUE;
+ *alt = !keys->pressed(row, col);
+ }
} else if (qkeycode == Qt::Key_Shift) {
need_repaint = TRUE;
if (shift) {
*shift = 0;
shift = 0;
}
else {
shift = keys->pressedPtr(row, col);
*shift = 1;
if (lock) {
*lock = 0;
lock = 0;
}
}
} else if (qkeycode == Qt::Key_CapsLock) {
need_repaint = TRUE;
if (lock) {
*lock = 0;
lock = 0;
}