author | hash <hash> | 2002-11-08 05:48:13 (UTC) |
---|---|---|
committer | hash <hash> | 2002-11-08 05:48:13 (UTC) |
commit | 585e766bcb974079957dabcbaf487c21211caa8b (patch) (unidiff) | |
tree | 672f8670a0ec70b3e7ff3a079800bc12d9f82f8e | |
parent | 6cb72a24dead3f2f1a122cbe6e9dcc43be86443a (diff) | |
download | opie-585e766bcb974079957dabcbaf487c21211caa8b.zip opie-585e766bcb974079957dabcbaf487c21211caa8b.tar.gz opie-585e766bcb974079957dabcbaf487c21211caa8b.tar.bz2 |
alt shouldnt stick either
-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 20 |
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 | |||
@@ -359,17 +359,17 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
359 | 359 | ||
360 | // circumflex | 360 | // circumflex |
361 | qkeycode = 0x2000; | 361 | qkeycode = 0x2000; |
362 | } | 362 | } |
363 | } | 363 | } |
364 | 364 | ||
365 | // Back accent character support | 365 | // Back accent character support |
366 | 366 | ||
367 | //if (unicode == 0x60) { // the keys from 2c6 ~ 2cf should be used instead of the ascii one | 367 | // the keys from 2c6 ~ 2cf should be used instead of the ascii one |
368 | if (unicode == 0x2cb) { | 368 | if (unicode == 0x2cb) { |
369 | 369 | ||
370 | unicode = 0; | 370 | unicode = 0; |
371 | if (shift || lock) { | 371 | if (shift || lock) { |
372 | 372 | ||
373 | // circumblex | 373 | // circumblex |
374 | qkeycode = 0x2000; | 374 | qkeycode = 0x2000; |
375 | } | 375 | } |
@@ -377,17 +377,16 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
377 | 377 | ||
378 | // back accent | 378 | // back accent |
379 | qkeycode = 0x2002; | 379 | qkeycode = 0x2002; |
380 | } | 380 | } |
381 | } | 381 | } |
382 | 382 | ||
383 | // Accent character support | 383 | // Accent character support |
384 | 384 | ||
385 | //if (unicode == 0xb4) { | ||
386 | if (unicode == 0x2ca) { | 385 | if (unicode == 0x2ca) { |
387 | 386 | ||
388 | unicode = 0; | 387 | unicode = 0; |
389 | if (shift || lock) { | 388 | if (shift || lock) { |
390 | 389 | ||
391 | // diaeresis | 390 | // diaeresis |
392 | qkeycode = 0x2001; | 391 | qkeycode = 0x2001; |
393 | } | 392 | } |
@@ -520,18 +519,18 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
520 | *meta = true; | 519 | *meta = true; |
521 | } | 520 | } |
522 | 521 | ||
523 | // reset all the other keys | 522 | // reset all the other keys |
524 | if (shift) { *shift = 0; shift = 0; } | 523 | if (shift) { *shift = 0; shift = 0; } |
525 | if (lock) { *lock = 0; lock = 0; } | 524 | if (lock) { *lock = 0; lock = 0; } |
526 | if (circumflex) { *circumflex = 0; circumflex = 0; } | 525 | if (circumflex) { *circumflex = 0; circumflex = 0; } |
527 | if (diaeresis) { *diaeresis = 0; diaeresis = 0; } | 526 | if (diaeresis) { *diaeresis = 0; diaeresis = 0; } |
528 | if (baccent) { *baccent = 0; baccent = 0; } | 527 | if (baccent) { *baccent = 0; baccent = 0; } |
529 | if (accent) { *accent = 0; accent = 0; } | 528 | if (accent) { *accent = 0; accent = 0; } |
530 | 529 | ||
531 | // dont need to emit this key... acts same as alt | 530 | // dont need to emit this key... acts same as alt |
532 | qkeycode = 0; | 531 | qkeycode = 0; |
533 | 532 | ||
534 | // circumflex | 533 | // circumflex |
535 | } else if (qkeycode == 0x2000) { | 534 | } else if (qkeycode == 0x2000) { |
536 | need_repaint = TRUE; | 535 | need_repaint = TRUE; |
537 | 536 | ||
@@ -620,17 +619,17 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
620 | 619 | ||
621 | baccent = keys->pressedPtr(row, col); | 620 | baccent = keys->pressedPtr(row, col); |
622 | *baccent = true; | 621 | *baccent = true; |
623 | } | 622 | } |
624 | 623 | ||
625 | 624 | ||
626 | if (shift) { *shift = 0; shift = 0; } | 625 | if (shift) { *shift = 0; shift = 0; } |
627 | if (meta) { *meta = 0; meta = 0; } | 626 | if (meta) { *meta = 0; meta = 0; } |
628 | if (accent) { *accent = 0; accent = 0; } | 627 | if (accent) { *accent = 0; accent = 0; } |
629 | 628 | ||
630 | qkeycode = 0; | 629 | qkeycode = 0; |
631 | 630 | ||
632 | // Accent | 631 | // Accent |
633 | } else if (qkeycode == 0x2003) { | 632 | } else if (qkeycode == 0x2003) { |
634 | need_repaint = TRUE; | 633 | need_repaint = TRUE; |
635 | 634 | ||
636 | if (accent) { | 635 | if (accent) { |
@@ -642,33 +641,33 @@ void Keyboard::mousePressEvent(QMouseEvent *e) | |||
642 | 641 | ||
643 | accent = keys->pressedPtr(row, col); | 642 | accent = keys->pressedPtr(row, col); |
644 | *accent = true; | 643 | *accent = true; |
645 | } | 644 | } |
646 | 645 | ||
647 | 646 | ||
648 | if (shift) { *shift = 0; shift = 0; } | 647 | if (shift) { *shift = 0; shift = 0; } |
649 | if (meta) { *meta = 0; meta = 0; } | 648 | if (meta) { *meta = 0; meta = 0; } |
650 | if (baccent) { *baccent = 0; } | 649 | if (baccent) { *baccent = 0; } |
651 | 650 | ||
652 | qkeycode = 0; | 651 | qkeycode = 0; |
653 | } | 652 | } |
654 | 653 | ||
655 | } | 654 | } |
656 | else { // normal char | 655 | else { // normal char |
657 | if ((shift || lock) && keys->shift(unicode)) { | 656 | if ((shift || lock) && keys->shift(unicode)) { |
658 | 657 | ||
659 | // make diaeresis/circumflex -> shift input shifted | 658 | // make diaeresis/circumflex -> shift input shifted |
660 | // diaeresis/circumflex chars | 659 | // diaeresis/circumflex chars |
661 | 660 | ||
662 | if (circumflex && keys->circumflex(keys->shift(unicode))) | 661 | if (circumflex && keys->circumflex(keys->shift(unicode))) |
663 | unicode = keys->circumflex(keys->shift(unicode)); | 662 | unicode = keys->circumflex(keys->shift(unicode)); |
664 | else if (diaeresis && keys->diaeresis(keys->shift(unicode))) | 663 | else if (diaeresis && keys->diaeresis(keys->shift(unicode))) |
665 | unicode = keys->diaeresis(keys->shift(unicode)); | 664 | unicode = keys->diaeresis(keys->shift(unicode)); |
666 | else if (baccent && keys->baccent(keys->shift(unicode))) | 665 | else if (baccent && keys->baccent(keys->shift(unicode))) |
667 | unicode = keys->baccent(keys->shift(unicode)); | 666 | unicode = keys->baccent(keys->shift(unicode)); |
668 | else if (accent && keys->accent(keys->shift(unicode))) | 667 | else if (accent && keys->accent(keys->shift(unicode))) |
669 | unicode = keys->accent(keys->shift(unicode)); | 668 | unicode = keys->accent(keys->shift(unicode)); |
670 | else if (meta && keys->meta(keys->shift(unicode))) | 669 | else if (meta && keys->meta(keys->shift(unicode))) |
671 | unicode = keys->meta(keys->shift(unicode)); | 670 | unicode = keys->meta(keys->shift(unicode)); |
672 | else | 671 | else |
673 | unicode = keys->shift(unicode); | 672 | unicode = keys->shift(unicode); |
674 | } | 673 | } |
@@ -770,16 +769,23 @@ void Keyboard::mouseReleaseEvent(QMouseEvent*) | |||
770 | } | 769 | } |
771 | if (ctrl && unicode != 0) { | 770 | if (ctrl && unicode != 0) { |
772 | 771 | ||
773 | *ctrl = 0; | 772 | *ctrl = 0; |
774 | ctrl = 0; | 773 | ctrl = 0; |
775 | repaint(FALSE); | 774 | repaint(FALSE); |
776 | 775 | ||
777 | } | 776 | } |
777 | if (alt && alt != 0) { | ||
778 | |||
779 | *alt = 0; | ||
780 | alt = 0; | ||
781 | repaint(FALSE); | ||
782 | |||
783 | } | ||
778 | 784 | ||
779 | /* | 785 | /* |
780 | * do not make the meta key release after being pressed | 786 | * do not make the meta key release after being pressed |
781 | * | 787 | * |
782 | 788 | ||
783 | else if (meta && unicode != 0) { | 789 | else if (meta && unicode != 0) { |
784 | 790 | ||
785 | *meta = 0; | 791 | *meta = 0; |