summaryrefslogtreecommitdiff
path: root/inputmethods/multikey/keyboard.cpp
Unidiff
Diffstat (limited to 'inputmethods/multikey/keyboard.cpp') (more/less context) (show whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp8
1 files changed, 7 insertions, 1 deletions
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
@@ -349,25 +349,31 @@ void Keyboard::mousePressEvent(QMouseEvent *e)
349 unicode = keys->shift(unicode); 349 unicode = keys->shift(unicode);
350 } 350 }
351 } 351 }
352 352
353 // korean parsing 353 // korean parsing
354 if (keys->lang == "ko") { 354 if (keys->lang == "ko") {
355 355
356 unicode = parseKoreanInput(unicode); 356 unicode = parseKoreanInput(unicode);
357 } 357 }
358 358
359 modifiers = (ctrl ? Qt::ControlButton : 0) | (alt ? Qt::AltButton : 0); 359 modifiers = (ctrl ? Qt::ControlButton : 0) | (alt ? Qt::AltButton : 0);
360 360
361 emit key(unicode, qkeycode, modifiers, true, false); 361 if ('A' <= unicode && unicode <= 'z' && modifiers) {
362
363 qkeycode = QChar(unicode).upper();
364 unicode = qkeycode - '@';
365 }
366
367 QWSServer::sendKeyEvent(unicode, qkeycode, modifiers, true, false);
362 368
363 // pickboard stuff 369 // pickboard stuff
364 if (usePicks) { 370 if (usePicks) {
365 371
366 KeyboardConfig *dc = picks->dc; 372 KeyboardConfig *dc = picks->dc;
367 373
368 if (dc) { 374 if (dc) {
369 if (qkeycode == Qt::Key_Backspace) { 375 if (qkeycode == Qt::Key_Backspace) {
370 dc->input.remove(dc->input.last()); // remove last input 376 dc->input.remove(dc->input.last()); // remove last input
371 dc->decBackspaces(); 377 dc->decBackspaces();
372 } else if ( qkeycode == Qt::Key_Return || QChar(unicode).isPunct() || QChar(unicode).isSpace() || unicode == 0) { 378 } else if ( qkeycode == Qt::Key_Return || QChar(unicode).isPunct() || QChar(unicode).isSpace() || unicode == 0) {
373 dc->input.clear(); 379 dc->input.clear();