author | hash <hash> | 2002-08-22 04:33:16 (UTC) |
---|---|---|
committer | hash <hash> | 2002-08-22 04:33:16 (UTC) |
commit | ea0d66f137984689c4d4ef6da7dd4b7323760e8c (patch) (side-by-side diff) | |
tree | 75332072b67132ef7fd7559578b7f02405d69a88 /inputmethods/multikey/keyboard.cpp | |
parent | ee90b966cfc262770ef5a45c2bad0af6766245a2 (diff) | |
download | opie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.zip opie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.tar.gz opie-ea0d66f137984689c4d4ef6da7dd4b7323760e8c.tar.bz2 |
fixed nasty bug related to ctrl and alt keys
Diffstat (limited to 'inputmethods/multikey/keyboard.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 30 |
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 @@ -293,32 +293,50 @@ void Keyboard::mousePressEvent(QMouseEvent *e) 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) { |