author | hash <hash> | 2002-08-21 17:54:33 (UTC) |
---|---|---|
committer | hash <hash> | 2002-08-21 17:54:33 (UTC) |
commit | 0a61be3b42b4b152468a5ef2def4a18baeda9b4f (patch) (side-by-side diff) | |
tree | aa82e34a4d4984ae334ffbd31582ac60a655e499 | |
parent | 24ca0a148bdb23f5c890661dc2edac7ba6120c67 (diff) | |
download | opie-0a61be3b42b4b152468a5ef2def4a18baeda9b4f.zip opie-0a61be3b42b4b152468a5ef2def4a18baeda9b4f.tar.gz opie-0a61be3b42b4b152468a5ef2def4a18baeda9b4f.tar.bz2 |
ctrl and alt keys should work now
-rw-r--r-- | inputmethods/multikey/configdlg.cpp | 1 | ||||
-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/inputmethods/multikey/configdlg.cpp b/inputmethods/multikey/configdlg.cpp index 89b713e..a9137b9 100644 --- a/inputmethods/multikey/configdlg.cpp +++ b/inputmethods/multikey/configdlg.cpp @@ -1,36 +1,37 @@ /* * TODO * make a font selection thing (size too) * make a cursor thing + * add meta key support for german, etc * * * */ #include <iostream.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <qwidget.h> #include <qdialog.h> #include <qtabwidget.h> #include <qvbox.h> #include <qgrid.h> #include <qgroupbox.h> #include <qlabel.h> #include <qcheckbox.h> #include <qsizepolicy.h> #include <qpushbutton.h> #include <qlistbox.h> #include <qstringlist.h> #include <opie/ofiledialog.h> #include <opie/colordialog.h> #include <qdir.h> #include <qfileinfo.h> #include "configdlg.h" #include "keyboard.h" // ConfigDlg::ConfigDlg() {{{1 ConfigDlg::ConfigDlg () : QTabWidget () { diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp index 7334c1c..949164a 100644 --- a/inputmethods/multikey/keyboard.cpp +++ b/inputmethods/multikey/keyboard.cpp @@ -329,65 +329,71 @@ void Keyboard::mousePressEvent(QMouseEvent *e) need_repaint = TRUE; if (lock) { *lock = 0; lock = 0; } else { lock = keys->pressedPtr(row, col);; *lock = 1; if (shift) { *shift = 0; shift = 0; } } } } else { // normal char if ((shift || lock) && keys->shift(unicode)) { unicode = keys->shift(unicode); } } // korean parsing if (keys->lang == "ko") { unicode = parseKoreanInput(unicode); } modifiers = (ctrl ? Qt::ControlButton : 0) | (alt ? Qt::AltButton : 0); - emit key(unicode, qkeycode, modifiers, true, false); + if ('A' <= unicode && unicode <= 'z' && modifiers) { + + qkeycode = QChar(unicode).upper(); + unicode = qkeycode - '@'; + } + + QWSServer::sendKeyEvent(unicode, qkeycode, modifiers, true, false); // pickboard stuff if (usePicks) { KeyboardConfig *dc = picks->dc; if (dc) { if (qkeycode == Qt::Key_Backspace) { dc->input.remove(dc->input.last()); // remove last input dc->decBackspaces(); } else if ( qkeycode == Qt::Key_Return || QChar(unicode).isPunct() || QChar(unicode).isSpace() || unicode == 0) { dc->input.clear(); dc->resetBackspaces(); } else { dc->add(QString(QChar(unicode))); dc->incBackspaces(); } } picks->repaint(); } // painting pressed = TRUE; pressedKeyRow = row; pressedKeyCol = col; if (need_repaint) repaint(FALSE); else { // just paint the one key pressed |