アイコンが削除されたアプリは、MutterとX11を使用してコンテンツを更新しません。

アイコンが削除されたアプリは、MutterとX11を使用してコンテンツを更新しません。

Swingライブラリを使用するJavaグラフィックアプリケーションがあります。アプリケーションが最小化され、グラフィックの内容(色など)が変更されると、ウィンドウが復元されると修正が表示されます。ただし、ウィンドウは更新されず、以前と同じままです。ウィンドウのサイズを変更または移動すると、更新されます。

私はX11 1.17.2とMutter 3.14.4をウィンドウマネージャとして使用してLinuxシステムでこのプログラムを実行しています。プログラムがX11 1.10.4とMetacity 2.28.0を使用する他のシステムで実行されているため、X11から送信されたメッセージまたはMutter構成で問題が発生することがわかります。

Deiconifyでアプリを更新してサイズ変更できるようにMutterをどのように設定しますか?それともX11を設定する必要がありますか?この問題を解決する方法がわからない...

答え1

Mutterは複合ウィンドウマネージャです。アイコン化が解除されても、ウィンドウバッファは保持されます。これはウィンドウ切り替え機能に便利です。たとえば、GNOME3の概要は、アイコン化されたウィンドウを含むすべてのウィンドウの全内容を表示します。 Metacityは合成を実行しないため、オフスクリーンバッファを使用しません。

あなたが説明する状況は、Mutterおよび/またはX11クライアントプログラムのバグである可能性があります。つまり、これが構成の問題ではないと仮定する必要があります。

コードやJava / Swingにエラーがある可能性があります。公平に言えば、ウィンドウがアイコン化されたかどうかを手動で検出し、再描画要求を避けた場合、それが問題であることに気づいたでしょう:-).

GNOME3を考えると、ストックGNOME3はウィンドウタイトルバーに「最小化」ボタンがないため、これがうまくテストされていないと想像できます。

コードで試すことができる回避策があります。私はこれが非常に明白だと思います:-).つまり、リスニングウィンドウがアイコンを解除して再描画するように要求されます。

関連情報