NEDM/xdg_shell.h

51 lines
1.2 KiB
C

// Copyright 2020 - 2025, project-repo and the NEDM contributors
// SPDX-License-Identifier: MIT
#ifndef NEDM_XDG_SHELL_H
#define NEDM_XDG_SHELL_H
#include "view.h"
struct nedm_xdg_shell_view {
struct nedm_view view;
struct wlr_xdg_toplevel *toplevel;
struct wl_listener destroy;
struct wl_listener commit;
struct wl_listener unmap;
struct wl_listener map;
struct wl_listener new_popup;
struct wl_listener request_fullscreen;
};
struct nedm_xdg_shell_popup {
struct nedm_view *view;
struct wlr_xdg_popup *wlr_popup;
struct wlr_scene_tree *scene_tree;
struct wlr_scene_tree *xdg_surface_tree;
struct wl_listener commit;
struct wl_listener new_popup;
struct wl_listener reposition;
struct wl_listener destroy;
};
struct nedm_xdg_decoration {
struct wlr_xdg_toplevel_decoration_v1 *wlr_decoration;
struct nedm_server *server;
struct wl_listener destroy;
struct wl_listener request_mode;
struct wl_list link; // server::xdg_decorations
};
void
handle_xdg_shell_toplevel_new(struct wl_listener *listener, void *data);
void
handle_xdg_shell_popup_new(struct wl_listener *listener, void *data);
void
handle_xdg_toplevel_decoration(struct wl_listener *listener, void *data);
#endif