Old-school C stumper - большая часть ввода с клавиатуры игнорируется древним приложением XWindows / Motif - PullRequest
2 голосов
/ 27 января 2011

Я восстанавливаю исходную сборку старого приложения Xt / Motif, над которым не работали годами, и последний раз успешно создавался на 32-битной Red Hat 4. У меня оно в основном собирается и работает на 64-битной Red Hat 5. Есть только одна существенная проблема с приложением ... оно не реагирует на большую часть ввода с клавиатуры, на которое оно рассчитано. Ни один из ускорителей меню не работает, равно как и многие другие модифицированные и неизмененные нажатия клавиш, которые должны поддерживать определенные функции. Единственные нажатия клавиш, которые распознает приложение, - это ввод в поля ввода текста и навигация по клавишам со стрелками между виджетами со строками / столбцами данных.

Я думал, что это может быть просто из-за плохого кода приложения, но затем произошло нечто странное ... все ключи начали работать! Я понятия не имею, что я сделал, чтобы это произошло. Я просто изучал код, запустив его в отладчике, и приложение начало реагировать на ввод клавиатуры. В этот момент я попытался запустить без отладчика, и ключи все еще работали. Затем я попытался запустить более старую сборку, в которой также была обнаружена проблема, и эта сборка также сработала.

Я скопировал те же самые исполняемые файлы на другую машину Centos 5, и там ключи все еще не работали. Я потратил кучу времени, глядя на эти две среды, но не мог понять, что отличает их. Затем я перезапустил свой компьютер (компьютер, на котором волшебным образом работало приложение), и теперь ключи больше не работают на этом компьютере. Ничто из того, что я могу придумать, не приведет к повторному распознаванию нажатий клавиш.

Так что, очевидно, эта проблема, по крайней мере, несколько экологическая. Кто-нибудь может дать какую-либо подсказку о том, что здесь происходит? Что изменилось в моей среде, чтобы приложение временно начало работать правильно? Я надеюсь, что есть какой-нибудь гуру Xt / Motif, который мог бы знать, что здесь происходит.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Это может быть "Numlock". В самом деле. Во многих последних установках X11 он рассматривается как модификатор, и если он включен, приложение получит модификатор key + и, вполне возможно, будет относиться к нему иначе.

1 голос
/ 27 января 2011

Я бы посмотрел на ваши сочетания клавиш и xmodmap.

(Прошло много времени с тех пор, как мне приходилось заниматься такими вещами.)

Я не могу понять, почему это так "оснастка ", как вы описываете;но, возможно, ваше старое приложение выполняет / выполняло какое-то переопределение в памяти или что-то в этом роде.

Кажется возможным, что оно может сохраниться после закрытия приложения;и, возможно, в отладчике сработало что-то, что не происходит во время выполнения из-за какого-то другого условия.

Удачи

...