2011-01-27 10 views
2

10年以上プログラミングしていない人や、Linux/UnixにCコードを書かなかった人は、この。旧式のC stumper - 古くからのXWindows/Motifアプリケーションでほとんどのキーボード入力が無視される

私は長年働いていなかった古いXt/Motifアプリケーションのソースビルドを復活させています。最後に32ビットRed Hat 4で正常に構築されました。私は64ビットRed Hat 5.アプリケーションに重大な問題が1つあります。キーボード入力のほとんどに応答しません。メニューアクセラレータは動作しませんし、特定の機能をサポートするはずの変更されていない変更や修正されていない変更も多数あります。アプリケーションが認識するのは、テキスト入力フィールドへの入力と、データの行/列を含むウィジェット間の矢印キーナビゲーションだけです。

私はこれは単純にアプリケーションコードが悪いことが原因かもしれませんが、何か変わったことが起きました....すべてのキーが機能し始めました!私はこれが起こる原因を知りませんでした。私はちょうどデバッガでそれを実行してコードを勉強していた、とアプリはキーボードの入力に応答し始めた。この時点で、私はデバッガなしで実行しようとしましたが、キーはまだ機能しました。私は問題を呈していた古いビルドを実行しようとしましたが、そのビルドもうまくいきました。

これらの実行ファイルを別のCentos 5マシンにコピーしましたが、その上にキーがまだ動作しませんでした。私は2つの環境を見て一気に時間を費やしましたが、2つの環境の違いは分かりませんでした。その後、私は自分のマシン(魔法のように働いていたマシン)を再起動し、今度はそのマシン上でキーが動作しなくなります。私がすることができると思うことは、キーを押すと再び認識されることはありません。

明らかに、この問題は、少なくとも多少の環境です。誰がここで何が起こっているかについての手がかりを提供することはできますか?アプリケーションが一時的に正しく動作するようにするために、私の環境が変わったのは何ですか?ここに何が起こっているのか知っているかもしれないXt/Motifの専門家がいることを願っています。

+3

"これは読んだことがないでしょう。"そして、彼らは嫌悪感は失われた芸術だと言った。 –

+0

私もこれを経験しました。 libmotifまたはlesstifを使用していますか?他の方がうまくいくかもしれません。 – maxelost

+1

アプリケーションのウィンドウに 'xev'を付けることで、受け入れられた/無視されたキーストロークの間に明らかな違いがあるかどうかを確認することができます – Hasturkun

答えて

1

あなたのキーバインドとxmodmapを調べます。

(私はそういったことの後に行かなければならなかったので、久しぶり。)

私はそれが「スナップイン」なぜあなたが記述のようにと考えることはできません。おそらくあなたの古いアプリはメモリー内の何らかのオーバーライドを行っていた/そうであったかもしれません。

アプリが終了した後も持続する可能性があります。デバッガでは、実行時に他の状態が原因で発生しないものがいくつかトリガされた可能性があります。

グッドラック

2

"numlock"にすることができます。本当に。最近のX11の多くの設定ではモディファイアとして扱われています。もしオンになっていれば、キー+モディファイアを取得し、別の方法で扱うこともあります。

+0

はい、MotifアプリケーションのNum-Lockでもこの問題が発生しました。 –