2

作業中のアプリケーションで問題が発生しています。基本的には全画面表示にしたいのですが、2 台のモニターのうちの 1 台でのみ表示します。Nvidia グラフィックス カードを使用し、Twinview を実行してデスクトップを 2 台のモニターに拡張しています。残念ながら、私が試したすべてのことは、1 つの大きなモニターしか表示しません。個々のモニターの解像度を実際に確認する方法はありますか? たくさんの外部ライブラリを使用する必要はありません。既に Xlib を使用してウィンドウを管理していますが、過去の Twinview を表示する呼び出しは見つかりませんでした。

残念ながら、私は今のところ Twinview でほとんど立ち往生しています。他のものに切り替えるだけでなく、それを回避する必要があります。

ありがとう

編集:基本的にXineramaで動作させることができましたが、さらに苦労した後、これが最終的なコードであり、はるかに簡潔になりました.

    XEvent xev;
    xev.type = ClientMessage;
    xev.xclient.window = this->window;
    xev.xclient.message_type = XInternAtom(this->display, "_NET_WM_STATE", False);
    xev.xclient.format = 32;
    xev.xclient.data.l[0] = 2; //0 is remove, 1 is add, 2 is toggle
    xev.xclient.data.l[1] = XInternAtom(this->display, "_NET_WM_STATE_FULLSCREEN", False);

同様の問題を抱えている他の人に役立つことを願っています。ウィンドウマネージャーはすべてをうまく処理します。

4

1 に答える 1

1

xorg.conf のこのオプションでそれを行う必要があります。

Option "NoTwinViewXineramaInfo"

このオプションは、Xinerama 情報をオフにします。Xinerama 情報をオフにすると、ウィンドウ マネージャーは、MetaMode 全体が画面であり、すべてが両方のモニターにまたがると認識します。[最大化] をクリックすると、アプリケーションが両方の画面に表示されます。一部のアプリケーションではこれで問題ありませんが、他のアプリケーションでは面倒です。私は両方の方法でテストしましたが、ウィンドウ マネージャーが 2 つのディスプレイがあることを認識できるようにすることを好みます。

于 2012-07-25T20:54:32.297 に答える