2016-02-25 9 views
7

Najwyraźniej jest to coś, co nie jest częścią podstawowego protokołu Wayland, ale używam Weston i rozszerzenie xdg skorupy wydaje się mieć niezbędną metodę:Jak ustawić współrzędne x, y okna w Wayland?

xdg_surface_set_window_geometry

Więc wpadłem wayland-scanner stworzyć kod xdg i pliki nagłówkowe:

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

współpraca de Używam jest mniej więcej tak:

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

Kod działa bez błędu, ale nie robi nic. Pracuję nad Debian Jessie z zapasowymi pakietami Wayland i Weston.

Jeśli istnieją inne podejścia niż xdg_shell, które mogą zadziałać, to ja jestem uszami.

+0

Czy znalazłeś odpowiedź? Chciałbym również ustawić domyślną pozycję dla moich okien pod Weston –

+1

Z pomocą forów Wayland/Weston, zrobiłem obejście problemu, które miało ustawić moje okna na pełnoekranowe wymiary wyjściowe z przezroczystym tłem, a następnie zrównoważyć moją zawartość pełny ekran. Interfejsy API Waylanda nie są obecnie przeznaczone do tego rodzaju kontroli poziomu aplikacji. – mpr

Odpowiedz

2

Nie jestem pewien, czy odpowiada twoim potrzebom, ale w weston/desktop-shell/shell.c w weston_view_set_initial_position (...) jest w nim użyta funkcja o nazwie position_position.

Ustawiam domyślną wartość xy i działa.

+0

W jaki sposób uzyskałeś obiekty 'weston_view' i' desktop_shell' z programu klienckiego? – mpr

+0

Jest dostępny w źródłach weston. Nie wiem, czy jest dostępny po stronie programu klienta. Ta modyfikacja zostanie zastosowana dla każdego okna. –

+0

Spojrzałem na przedłużanie Weston, ale było to dla mnie za dużo, abym mógł odgryźć w tej chwili. Pozostawię pytanie otwarte na razie, z myślą, że być może interfejsy API Wayland zapewnią większą kontrolę poziomu aplikacji w przyszłości. – mpr

Powiązane problemy