問題: Linux システムの Window Manager C++ ファイルで、XWindows によって制御される Java ウィンドウがあります。HCI をおよそ 7 ~ 35 回連続して (そしてすばやく) 開くと、通常、ウィンドウが設定した場所 (430, 300 )。失敗した後、HCI を閉じて再度開くと、バグが発生する前と同じように、正しい場所で開かれます。属性は最初に XMoveResizeWindow で設定されます。
(XTranslateAttributes と XGetWindowAttributes を介して) HCI の場所を確認し、X と Y を設定された場所と比較し、一致しない場合は属性をリセットするループを追加しました。
ただし、属性を印刷すると、ウィンドウが実際に (0,0) で開いていても (430, 300) と表示されます。
具体的な質問: これは XWindows のバグですか? 属性が 1 つのものを読み取ることは意味がありますが、実際の場所とは一致しません (つまり、これらの属性は要求ではなく提案である可能性があります)。HCI のより正確な位置を返す別の方法はありますか?
更新:ループを変更して、XMoveWindow を介して場所を 15 回続けて移動しようとしました。修正されたようです(まだテストは行われていません)。しかし、力ずくよりも良い方法があるはずです。