labwc/include/xwayland.h
Johan Malm b8ec5a3e2e view: add move_to_front to struct view_impl
...to increase xwayland and xdg-shell encapsulation and to avoid passing a
function pointer as an argument in `xwayland_move_sub_views_to_front()`
which is inconsistent with labwc design patterns.

Rename view-impl.c to view-impl-common.c

Move function declarations that are common to view-implementations from
view.h into view-impl-common.h
2023-02-24 20:42:01 +00:00

54 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __LABWC_XWAYLAND_H
#define __LABWC_XWAYLAND_H
#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;
struct wl_listener request_activate;
struct wl_listener request_configure;
/* struct wl_listener request_fullscreen; */
struct wl_listener set_geometry;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
struct wl_listener override_redirect;
};
struct xwayland_view {
struct view base;
struct wlr_xwayland_surface *xwayland_surface;
/* Events unique to XWayland views */
struct wl_listener request_configure;
struct wl_listener set_app_id; /* TODO: s/set_app_id/class/ */
struct wl_listener set_decorations;
struct wl_listener override_redirect;
/* 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);
struct wlr_xwayland_surface *xwayland_surface_from_view(struct view *view);
bool xwayland_apply_size_hints(struct view *view, int *w, int *h);
void xwayland_server_init(struct server *server,
struct wlr_compositor *compositor);
void xwayland_server_finish(struct server *server);
#endif /* HAVE_XWAYLAND */
#endif /* __LABWC_XWAYLAND_H */