samstyle / Xpeccy

Multiplatform emulator of retro computers
MIT License
71 stars 13 forks source link

[Windows], Left/Right Shift/Ctrl отрабатывают вместе и залипают. #48

Closed Volutar closed 3 years ago

Volutar commented 5 years ago

Наблюдается неприятные моменты:

  1. Не отрабатывает одновременное нажатие на левую и правую мод.клавишу, т.е. left ctrl одновременно с right ctrl не видится. То же самое и с shift.
  2. Зажав LS затем RS, и отпускаем LS, при этом залипшим остается RS. И в обратной последовательности так же. Если после залипания одной нажать на одну клавишу с другой стороны (например при залипшем LS нажать RS), то она также залипает. При выходе в дебаг залипы уходят.
  3. Даже если не перемапливать LS/RS/LC/RC, то залипы всё равно случаются с нажатиями на LS+LC. Причём, при зажатом LC, потыкивание на LS не даёт залипы, а при зажатом LS потыкивание на LC даёт залип, но не первый раз - со второго потыкивания с вероятностью где-то в 50%. Выход в дебагер этот "счётчик" сбрасывает. т.е. после выхода в дебагер одиночный LC+LS никогда не залипает. Сброс в дебагере работает ТОЛЬКО если ZX Keyboard не включен, а если он включен то залипания остаются после входа в дебаггер. И более того - все залипы прекрасно отображаются на ней.
samstyle commented 4 years ago

Нашёл в интернетах код от правого контрола. Просьба проверить хотя бы его.

Volutar commented 4 years ago

Теперь зажав один из контролов, второй игнорится первый раз, и только со 2го нажатия отрабатывает (но отрабатывает!). Если отпустить 1ю после второй, то 2я залипает. То есть нормально работает только если держать левый контрол, и дважды ткнуть на правый, и потом отпустить левый. И наоборот. Но правый контрол стал видеть (раньше видел только левый). И всё-таки одновременное их нажатие как-то, но отрабатывает. И когда выполняешь последовательность "зажав 1 нажимаешь 2 отпускаешь 2" - отлипает (раньше не отлипал). По крайней мере с контролами. Шифтами залип не убрать. И шифты одновременно не обнаруживаются. Только отдельно левый или отдельно правый. Одновременное нажатие ведет к залипу первого (если отпустить сначала его)

Volutar commented 3 years ago

Патч для исправления diff_kbd.patch.zip

Volutar commented 3 years ago

Исправленно коммитом: https://github.com/samstyle/Xpeccy/commit/59f988a9cdb57107358b90f547a68b2a3a70b5b6