c++ - 老派的 C 树桩 - 大多数键盘输入被古老的 XWindows/Motif 应用程序忽略

标签 c++ linux keyboard motif x11

我正在恢复一个旧的 Xt/Motif 应用程序的源代码构建,该应用程序已经多年没有使用过,最后一次在 32 位 Red Hat 4 上成功构建。我主要在 64 位 Red Hat 上构建和运行它5. 该应用程序只有一个重大问题...它无法响应大多数应有的键盘输入。菜单加速器都不起作用,许多其他应该支持特定功能的修改和未修改的按键也不起作用。该应用程序识别的唯一击键是输入文本输入字段以及跨具有数据行/列的小部件的箭头键导航。

我认为这可能只是由于应用程序代码错误所致,但随后发生了一些奇怪的事情......所有按键都开始工作!我不知道我做了什么导致了这种情况的发生。我只是通过在调试器中运行代码来研究代码,应用程序开始响应键盘输入。此时,我尝试在没有调试器的情况下运行,并且按键仍然有效。然后,我尝试运行一个也出现该问题的旧版本,该版本也能正常工作。

我将这些相同的可执行文件复制到另一台 Centos 5 机器上,在那里,按键仍然不起作用。我花了很多时间研究这两个环境,但无法弄清楚两者之间有什么不同。然后我重新启动了我的机器(应用程序神奇地工作的机器),现在按键也不再在那台机器上工作。我认为无论做什么都不会导致按键再次被识别。

很明显,这个问题至少在某种程度上是环境问题。任何人都可以提供有关这里发生的事情的任何线索吗?我的环境发生了什么变化导致应用程序暂时开始正常运行?我希望有一些 Xt/Motif 专家可能知道这里发生了什么。

最佳答案

可能是“numlock”。真的。在许多最近的 X11 设置中,它被视为修饰符,如果打开,应用程序将获得键+修饰符,并且很可能以不同的方式对待它。

关于c++ - 老派的 C 树桩 - 大多数键盘输入被古老的 XWindows/Motif 应用程序忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812181/

相关文章:

C++ 函数在 windows 中完美运行但在 linux 中不完美?

c++ - MFC PostMessage 从主项目到 UI 线程

c++ - 如何正确使用C++ 11风格的内存池?

linux - 在 debian 中安装 nw.js 返回错误 "version ` GLIBC_2.1 4' not found"

java - 用于隐藏软件键盘的KeyEvent代码?

react-native - React Native - 如何仅键入数字键盘(不带标点符号)

c++ - 如何编写我自己的操纵器?

arrays - 如何循环查看命令的输出?

linux - MATLAB Linux 内存不足错误

android - Android 2.3 模拟器上的印地语键盘问题