samstyle / Xpeccy

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

[MacOS] 0.6.20210720 нумпад #120

Open ammehet opened 2 years ago

ammehet commented 2 years ago

Перестал работать нумпад и кнопки со стрелками. В предыдущем 0.6.20210703 всё ок.

samstyle commented 2 years ago

По идее всё должно было быть наоборот. Нампад ни в каком состоянии NumLock не работает (вкл/выкл)? PS: стрелки точно не трогал

ammehet commented 2 years ago

В макоси намлока как такового вообще нету (никакой реакции на кнопку). В прошлой версии всё работало, а теперь даже стрелки перестали. при этом блок PgUp/PgDn/Home/End работает.

samstyle commented 2 years ago

Насчет нумпада прояснилось. Начиная с 20210720 это отдельные кнопки, которые по умолчанию никуда не замаплены. Можно посмотреть их названия - https://github.com/samstyle/Xpeccy/blob/master/src/xcore/keymap.cpp#L103 и сделать себе map-файл под свои нужды

ammehet commented 2 years ago

Добавил в мап-файл

NMUL    S   b
NMINUS  S   j
итд

не заработало. Добавление туда стрелок также не работает.

samstyle commented 2 years ago

В линуксах работает. Виртуалка с хакинтошем после смены внутренностей компа не запускается, пока что проверить не могу. На всякий случай тупые вопросы - значения в мап-файле разделены табами? и выбран ли этот мап файл в настройках на вкладке Input?

ammehet commented 2 years ago

far2l гад, тайком понаставил пробелы вместо табуляций. С табуляциями нумпад заработал! Но со стрелками проблема, даже если переопределить их в мап-файле. Судя по ZX Keyboard, нажатие на стрелки вызывает залипание zx-кнопок: влево 4, вправо 6, вверх 8, вниз 2 – в точности, как будто на нумпаде стрелку нажали со включенным NumLock. Только при отпускании стрелки zx-кнопка не отлипает.

samstyle commented 2 years ago

насчет стрелок - https://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum

on MacOSX... The KeypadModifier value will also be set when an arrow key is pressed as the arrow keys are considered part of the keypad.

видимо, на хакинтоши с нампадами Qt не рассчитывал. Ясно-понятно, нужно будет ещё один #if впихивать

samstyle commented 2 years ago

Пока пришел к такому выходу - в макоси/хакинтоше при выключенном нумлоке 2-4-6-8 на нумпаде будут определяться как стрелки. Остальные кнопки, в т.ч при включенном нумлоке - как кнопки нумпада. Иначе их не отличить от стрелок, которые почему-то идут с Qt::KeypadModifier ЗЫ: А отдельными кнопками нумпад должен быть хотя бы для того, чтобы на них можно было повесить направления-кнопки джойстика.