2023-01-07 17:50:33 -05:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2023-05-13 16:10:33 +03:00
|
|
|
#ifndef LABWC_XWAYLAND_H
|
|
|
|
|
#define LABWC_XWAYLAND_H
|
2023-01-07 17:50:33 -05:00
|
|
|
#include "config.h"
|
|
|
|
|
#if HAVE_XWAYLAND
|
|
|
|
|
#include "view.h"
|
|
|
|
|
|
|
|
|
|
struct wlr_compositor;
|
|
|
|
|
|
|
|
|
|
struct xwayland_unmanaged {
|
|
|
|
|
struct server *server;
|
|
|
|
|
struct wlr_xwayland_surface *xwayland_surface;
|
|
|
|
|
struct wlr_scene_node *node;
|
|
|
|
|
struct wl_list link;
|
|
|
|
|
|
2023-06-15 02:35:43 -07:00
|
|
|
struct mappable mappable;
|
|
|
|
|
|
|
|
|
|
struct wl_listener associate;
|
|
|
|
|
struct wl_listener dissociate;
|
2023-01-07 17:50:33 -05:00
|
|
|
struct wl_listener request_activate;
|
|
|
|
|
struct wl_listener request_configure;
|
|
|
|
|
/* struct wl_listener request_fullscreen; */
|
|
|
|
|
struct wl_listener set_geometry;
|
|
|
|
|
struct wl_listener destroy;
|
2023-10-16 02:01:35 -04:00
|
|
|
struct wl_listener set_override_redirect;
|
2023-01-07 17:50:33 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct xwayland_view {
|
|
|
|
|
struct view base;
|
|
|
|
|
struct wlr_xwayland_surface *xwayland_surface;
|
|
|
|
|
|
|
|
|
|
/* Events unique to XWayland views */
|
2023-06-15 02:35:43 -07:00
|
|
|
struct wl_listener associate;
|
|
|
|
|
struct wl_listener dissociate;
|
2023-02-24 21:27:11 +00:00
|
|
|
struct wl_listener request_activate;
|
2023-01-07 17:50:33 -05:00
|
|
|
struct wl_listener request_configure;
|
2023-10-16 02:01:35 -04:00
|
|
|
struct wl_listener set_class;
|
2023-01-07 17:50:33 -05:00
|
|
|
struct wl_listener set_decorations;
|
2023-10-16 02:01:35 -04:00
|
|
|
struct wl_listener set_override_redirect;
|
2023-01-07 17:50:33 -05:00
|
|
|
|
|
|
|
|
/* Not (yet) implemented */
|
|
|
|
|
/* struct wl_listener set_role; */
|
|
|
|
|
/* struct wl_listener set_window_type; */
|
|
|
|
|
/* struct wl_listener set_hints; */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void xwayland_unmanaged_create(struct server *server,
|
|
|
|
|
struct wlr_xwayland_surface *xsurface, bool mapped);
|
|
|
|
|
|
2023-04-19 18:10:07 -04:00
|
|
|
void xwayland_view_create(struct server *server,
|
|
|
|
|
struct wlr_xwayland_surface *xsurface, bool mapped);
|
2023-04-17 17:02:11 +01:00
|
|
|
|
2023-11-21 03:09:22 +01:00
|
|
|
void xwayland_adjust_stacking_order(struct server *server);
|
|
|
|
|
|
2023-01-07 17:50:33 -05:00
|
|
|
struct wlr_xwayland_surface *xwayland_surface_from_view(struct view *view);
|
|
|
|
|
|
|
|
|
|
void xwayland_server_init(struct server *server,
|
|
|
|
|
struct wlr_compositor *compositor);
|
|
|
|
|
void xwayland_server_finish(struct server *server);
|
|
|
|
|
|
|
|
|
|
#endif /* HAVE_XWAYLAND */
|
2023-05-13 16:10:33 +03:00
|
|
|
#endif /* LABWC_XWAYLAND_H */
|