[proof-of-concept] allow toplevel capture

Missing:
- xwayland child windows
- xwayland unmanaged windows, e.g. popups / menus / ...
- xdg child window positioning
- xdg subsurfaces (test-case: mate-terminal settings listboxes)
- xdg popup positioning
This commit is contained in:
Consolatis 2025-07-06 01:04:55 +02:00
parent 918c3290fc
commit 100786601b
8 changed files with 83 additions and 0 deletions

View file

@ -188,6 +188,13 @@ struct server {
struct wlr_xdg_toplevel_icon_manager_v1 *xdg_toplevel_icon_manager;
struct wl_listener xdg_toplevel_icon_set_icon;
struct {
struct wlr_ext_foreign_toplevel_image_capture_source_manager_v1 *manager;
struct {
struct wl_listener new_request;
} on;
} toplevel_capture;
struct wl_list views;
uint64_t next_view_creation_id;
struct wl_list unmanaged_surfaces;

View file

@ -172,6 +172,11 @@ struct view {
char *title;
char *app_id; /* WM_CLASS for xwayland windows */
struct {
struct wlr_scene *scene;
struct wlr_ext_image_capture_source_v1 *source;
} capture;
bool mapped;
bool been_mapped;
uint64_t creation_id;
@ -303,6 +308,7 @@ struct xdg_toplevel_view {
/* Events unique to xdg-toplevel views */
struct wl_listener set_app_id;
struct wl_listener request_show_window_menu;
struct wl_listener set_parent;
struct wl_listener new_popup;
};