2016-02-25 56 views
7

どうやらこれはコアウェイランドプロトコルの一部ではないものですが、私はウェストンを使用していますとのxdg-シェル拡張が必要な​​メソッドを持っているように見えます:Waylandのウィンドウのx、y座標を設定するにはどうすればよいですか?

xdg_surface_set_window_geometry

だから私はXDGコードを作成するためにwayland-scannerを走りましたそして、ヘッダファイル:

wayland-scanner code < ./weston-1.6.0/protocol/xdg-shell.xml > xdg_shell.c

wayland-scanner client-header < ./weston-1.6.0/protocol/xdg-shell.xml > xdg_shell.h

surface = wl_compositor_create_surface(compositor); 
if(surface == NULL) { 
    ... 
} 

native_window = wl_egl_window_create(surface, some_width, some_height); 
if(native_window == NULL) { 
    ... 
} 

_xdg_surface = xdg_shell_get_xdg_surface(_xdg_shell, surface); 

xdg_surface_set_window_geometry(_xdg_surface, 0, 0, some_width, some_height); 

コードがエラーなしで実行しますが、何もしません:次のように私が使用しているデはおおよそです。私はDebian JessieをWaylandとWestonの株式パッケージで運営しています。

私はすべての耳だうまくいくかもしれないxdg_shell以外のアプローチが存在する場合。

+0

回答が見つかりましたか?私はまた、ウェストンの下に私のウィンドウのデフォルトの位置を設定するために探しています –

+1

ウェイランド/ウェストンのフォーラムの助けを借りて私は透明な背景をフルスクリーンの出力次元に私のウィンドウを設定し、フルスクリーン。 Wayland APIは、今のところこの種のアプリケーションレベルコントロールのためのものではありません。 – mpr

答えて

2

weston_view_set_initial_position(...)内のweston/desktop-shell/shell.cには、必要に応じてset_positionという名前の関数があります。

私は、デフォルトのXY値を設定し、それが動作します。

+0

クライアントプログラムから 'weston_view'と' desktop_shell'オブジェクトをどうやって取得しましたか? – mpr

+0

これはwestonのソースからアクセスできます。クライアントプログラム側からアクセスできるかどうかはわかりません。 この変更はすべてのウィンドウに適用されます。 –

+0

私はウェストンの延長を検討しましたが、現時点では私にはあまりにも苦労しました。 Wayland APIが今後、より多くのアプリケーションレベルの制御を提供するだろうという考えで、私は今質問を開いたままにしておきます。 – mpr

関連する問題