XLib ベースのアプリケーションでは、親ウィンドウの後に子ウィンドウのサイズを変更する必要があります。(例えば、子ウィンドウが親ウィンドウのクライアント領域全体を占有するようにするため)
親ウィンドウの ConfigureNotify イベントを処理し、必要に応じて子ウィンドウのサイズを変更しています。
一般的には正常に動作します。ただし、親ウィンドウのサイズ変更 (たとえば、ユーザーがエッジをドラッグしてウィンドウのサイズを変更した場合) とアプリケーションがイベントを受け取るまでには遅延があります。
この遅延のため、子ウィンドウは、ユーザーがエッジの移動を停止してからしばらくしてから、適切なサイズになります。この方法では、画面にちらつきが発生し、ユーザー インターフェイスが非常に遅くなります。
多くの Linux プログラムで同様の動作が見られます。
この問題はどのように修正できますか? または、少なくとも、遅延を大幅に小さくする方法は?
最後に受信したイベントのみを処理することで、いくつかの ConfigureNotify イベントを無視しようとしましたが、少しは役に立ちましたが、十分ではありませんでした。
アップデート:
いくつかの調査の結果、この問題は WM とアプリケーションの相互作用の非同期性が原因であることがわかりました。アプリケーションが子ウィンドウのサイズを変更して再描画している間、ウィンドウ マネージャーは親ウィンドウのサイズを変更し続けます。そのため、サイズ変更/再配置/再描画のプロセスが終了すると、親ウィンドウは別のサイズになり、別のイベントがイベント キューにポストされ、すべてを最初から開始する必要があります。