swayfx/include/sway/layers.h

59 lines
1.3 KiB
C
Raw Normal View History

2018-03-29 06:47:22 +11:00
#ifndef _SWAY_LAYERS_H
#define _SWAY_LAYERS_H
#include <stdbool.h>
#include <wlr/types/wlr_surface.h>
2018-09-15 03:21:44 +10:00
#include <wlr/types/wlr_layer_shell_v1.h>
2018-03-29 06:47:22 +11:00
2019-07-06 04:45:11 +10:00
enum layer_parent {
LAYER_PARENT_LAYER,
LAYER_PARENT_POPUP,
};
2018-03-29 06:47:22 +11:00
struct sway_layer_surface {
2018-09-15 03:21:44 +10:00
struct wlr_layer_surface_v1 *layer_surface;
2018-03-29 06:47:22 +11: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-06 04:45:11 +10:00
struct wl_listener new_popup;
struct wl_listener new_subsurface;
2018-03-29 06:47:22 +11:00
struct wlr_box geo;
enum zwlr_layer_shell_v1_layer layer;
2018-03-29 06:47:22 +11:00
};
2019-07-06 04:45:11 +10: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_listener map;
struct wl_listener unmap;
struct wl_listener destroy;
struct wl_listener commit;
};
struct sway_output;
void arrange_layers(struct sway_output *output);
2018-09-15 03:21:44 +10:00
struct sway_layer_surface *layer_from_wlr_layer_surface_v1(
struct wlr_layer_surface_v1 *layer_surface);
2018-03-29 06:47:22 +11:00
#endif