adding xwayland support

This commit is contained in:
2026-04-06 23:38:06 +07:00
parent 7601b86450
commit e995f748b2
10 changed files with 133 additions and 11 deletions
+1
View File
@@ -1,6 +1,7 @@
#include "types.h"
bool absinthe_toplevel_is_x11(struct absinthe_toplevel *toplevel);
bool absinthe_toplevel_is_unmanaged(struct absinthe_toplevel *toplevel);
struct absinthe_toplevel *absinthe_toplevel_at(struct absinthe_server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy);
+5
View File
@@ -8,6 +8,11 @@ void server_new_xdg_toplevel(struct wl_listener *listener, void *data);
void server_new_xdg_popup(struct wl_listener *listener, void *data);
void server_new_xdg_decoration(struct wl_listener *listener, void *data);
#ifdef XWAYLAND
void server_xwayland_ready(struct wl_listener *listener, void *data);
void server_xwayland_new_surface(struct wl_listener *listener, void *data);
#endif
void server_cursor_motion(struct wl_listener *listener, void *data);
void server_cursor_motion_absolute(struct wl_listener *listener, void *data);
void server_cursor_button(struct wl_listener *listener, void *data);
+11 -5
View File
@@ -72,6 +72,12 @@ struct absinthe_server {
struct wlr_xdg_decoration_manager_v1 *xdg_decoration_mgr;
struct wl_listener new_xdg_decoration;
#ifdef XWAYLAND
struct wlr_xwayland *xwayland;
struct wl_listener xwayland_new_surface;
struct wl_listener xwayland_ready;
#endif
struct wlr_cursor *cursor;
struct wlr_xcursor_manager *cursor_mgr;
struct wl_listener cursor_motion;
@@ -152,11 +158,11 @@ struct absinthe_toplevel {
struct wl_listener decoration_destroy;
#ifdef XWAYLAND
struct wl_listener activate;
struct wl_listener associate;
struct wl_listener dissociate;
struct wl_listener configure;
struct wl_listener set_hints;
struct wl_listener xwayland_activate;
struct wl_listener xwayland_associate;
struct wl_listener xwayland_dissociate;
struct wl_listener xwayland_configure;
struct wl_listener xwayland_set_hints;
#endif
};
+9
View File
@@ -0,0 +1,9 @@
#pragma once
#include <wayland-server.h>
void xwayland_activate(struct wl_listener *listener, void *data);
void xwayland_associate(struct wl_listener *listener, void *data);
void xwayland_dissociate(struct wl_listener *listener, void *data);
void xwayland_configure(struct wl_listener *listener, void *data);
void xwayland_set_hints(struct wl_listener *listener, void *data);