
WinForms GUI を備えた Mono アプリケーションを、X11 転送を有効にした SSH 接続経由で動作させるのに問題が発生しています。
私が使用しているマシンは Windows 10 ラップトップです。Xming と Vcxsrv の両方がインストールされています。接続先のマシンは Ubuntu 16.10 を実行している VM です。KiTTY を使用してラップトップから VM に接続しています。接続の KiTTY 構成で [X11 転送を有効にする] チェックボックスをオンにしています。VM では Mono バージョン 5.4.0.167 を使用しています。
VM に接続して、xeyes や Firefox などの X アプリケーションを実行すると (ラップトップで Vcxsrv が実行されている間)、アプリケーション ウィンドウが (バックグラウンドで) 開き、フォアグラウンドに移動すると、期待どおりに機能します。
しかし、Monoアプリケーション(例えば、これグラフィカル インターフェイスを開くはずの X アプリケーション (ページ) を開くと、期待どおりの動作になりません。Windows タスク バーには X アプリケーションが開いていることが表示され、タスク バー アイコンにマウスを移動すると、プレビューに (期待どおりの) ユーザー インターフェイスが表示されます。ただし、タスク バー アイコンをクリックしても、ユーザー インターフェイスは前面に表示されません。開いている他のすべてのアプリケーションを最小化しても、ユーザー インターフェイスはまったく表示されません。ラップトップで Vcxsrv の代わりに Xming を使用した場合も、動作は同じです。
Mono X11 ドライバーと Vcxsrv / Xming の間には既知の非互換性がありますか?この問題をデバッグする良い方法は何ですか?
答え1
一部のウィンドウ マネージャーでは、画面解像度の変更に問題があります。このため、場合によってはウィンドウが画面外に描画されることがあります。リモート X がその一例で、モニターのプラグを抜くこともその 1 つです。
ウィンドウを最大化する(またはウィンドウを可視領域に移動する)ことで、ほとんどの場合、この問題を永続的に修正できます。
ところで、これはモノとは何の関係もありません。