A quanto pare questo è qualcosa che non è parte del protocollo nucleo Wayland, ma sto usando Weston e l'estensione xdg-shell sembra avere il metodo necessario:Come impostare le coordinate x, y di una finestra in Wayland?
xdg_surface_set_window_geometry
così mi sono imbattuto wayland-scanner
per creare codice xdg e file di intestazione:
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
Il co de sto usando è più o meno la seguente:
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);
Il codice viene eseguito senza errori, ma non fa nulla. Sto correndo su Debian Jessie con i pacchetti stock di Wayland e Weston.
Se ci sono approcci diversi da xdg_shell
che potrebbero funzionare, sono tutto orecchie.
Hai trovato una risposta? Sto anche cercando di impostare una posizione predefinita per la mia finestra sotto weston –
Con un po 'di aiuto dai forum di Wayland/Weston ho fatto una soluzione alternativa, che era di impostare le mie finestre a dimensioni di output a schermo intero con uno sfondo trasparente, quindi compensare il mio contenuto all'interno lo schermo intero. Le API Wayland non sono pensate per questo tipo di controllo del livello di applicazione al momento. – mpr