sway/include/sway/layers.h

68 lines
1.5 KiB
C
Raw Normal View History

2018-03-28 19:47:22 +00:00
#ifndef _SWAY_LAYERS_H
#define _SWAY_LAYERS_H
#include <stdbool.h>
#include <wlr/types/wlr_compositor.h>
2018-09-14 17:21:44 +00:00
#include <wlr/types/wlr_layer_shell_v1.h>
2018-03-28 19:47:22 +00:00
2019-07-05 18:45:11 +00:00
enum layer_parent {
LAYER_PARENT_LAYER,
LAYER_PARENT_POPUP,
};
2018-03-28 19:47:22 +00:00
struct sway_layer_surface {
2018-09-14 17:21:44 +00:00
struct wlr_layer_surface_v1 *layer_surface;
2018-03-28 19:47:22 +00:00
struct wl_list link;
struct wl_listener destroy;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener surface_commit;
struct wl_listener output_destroy;
2019-07-05 18:45:11 +00:00
struct wl_listener new_popup;
struct wl_listener new_subsurface;
2018-03-28 19:47:22 +00:00
struct wlr_box geo;
bool mapped;
struct wlr_box extent;
enum zwlr_layer_shell_v1_layer layer;
struct wl_list subsurfaces;
2018-03-28 19:47:22 +00:00
};
2019-07-05 18:45:11 +00:00
struct sway_layer_popup {
struct wlr_xdg_popup *wlr_popup;
enum layer_parent parent_type;
union {
struct sway_layer_surface *parent_layer;
struct sway_layer_popup *parent_popup;
};
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
struct wl_listener commit;
struct wl_listener new_popup;
};
struct sway_layer_subsurface {
struct wlr_subsurface *wlr_subsurface;
struct sway_layer_surface *layer_surface;
struct wl_list link;
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
struct wl_listener commit;
};
struct sway_output;
struct wlr_layer_surface_v1 *toplevel_layer_surface_from_surface(
struct wlr_surface *surface);
void arrange_layers(struct sway_output *output);
2018-09-14 17:21:44 +00:00
struct sway_layer_surface *layer_from_wlr_layer_surface_v1(
struct wlr_layer_surface_v1 *layer_surface);
2018-03-28 19:47:22 +00:00
#endif