Add xwayland, fix naming

Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-08-10 12:58:55 +03:00
parent 025ee9da91
commit ec61c13aa6
2 changed files with 376 additions and 47 deletions

View File

@@ -50,12 +50,18 @@ typedef struct {
typedef struct {
uint32_t id;
bool is_xwayland;
struct LunarWM *server;
struct wl_listener commit;
struct wl_listener destroy;
struct wlr_xdg_toplevel *xdg_toplevel;
union {
struct wlr_xdg_toplevel *xdg;
struct wlr_xwayland_surface *xwl;
} u;
struct wlr_surface *surface;
struct wlr_texture *texture;
@@ -65,8 +71,10 @@ typedef struct {
Texture2D rl_texture;
} LunarWM_Toplevel;
bool LunarWM_Toplevel_init(
bool LunarWM_Toplevel_init_xdg(
LunarWM_Toplevel *tl, struct LunarWM *wm, struct wlr_xdg_toplevel *xdg);
bool LunarWM_Toplevel_init_xwayland(
LunarWM_Toplevel *tl, struct LunarWM *wm, struct wlr_xwayland_surface *xwl);
bool LunarWM_Toplevel_destroy(LunarWM_Toplevel *this);
bool LunarWM_Toplevel_update(LunarWM_Toplevel *this);
@@ -130,6 +138,11 @@ typedef struct LunarWM {
struct wlr_xwayland *xwayland;
struct wl_listener xwayland_ready;
struct wl_listener xwayland_new_surface;
struct wl_listener xwayland_associate_tmp; // per-surface temp
struct wl_listener xwayland_dissociate_tmp; // per-surface temp
LunarWM_Toplevel **v_toplevels;
int current_focus;
} wayland;