10

どうやらこれはコア Wayland プロトコルの一部ではないものですが、私は Weston を使用しており、xdg-shell 拡張機能には必要なメソッドがあるようです:

xdg_surface_set_window_geometry

そこで、実行wayland-scannerして xdg コードとヘッダー ファイルを作成しました。

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);

コードはエラーなしで実行されますが、何もしません。ストックの Wayland および Weston パッケージを使用して Debian Jessie を実行しています。

それ以外のアプローチがあればxdg_shellうまくいくかもしれません。

4

1 に答える 1

2

それがあなたのニーズに対応しているかどうかはわかりませんが、weston/desktop-shell/shell.c in weston_view_set_initial_position(...) には set_position という名前の関数が使用されています。

デフォルトの xy 値を設定すると動作します。

于 2016-03-01T14:14:56.920 に答える