mirror of
https://github.com/swaywm/sway.git
synced 2025-11-10 13:29:51 -05:00
Separate root-related code
This creates a root.c and moves bits and pieces from elsewhere into it. * layout_init has been renamed to root_create and moved into root.c * root_destroy has been created and is called on shutdown * scratchpad code has been moved into root.c, because hidden scratchpad containers are stored in the root struct
This commit is contained in:
parent
5de2223c6d
commit
04489ff420
12 changed files with 292 additions and 275 deletions
|
|
@ -3,6 +3,7 @@
|
|||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/render/wlr_texture.h>
|
||||
#include "sway/tree/container.h"
|
||||
#include "sway/tree/root.h"
|
||||
#include "config.h"
|
||||
|
||||
enum movement_direction {
|
||||
|
|
@ -24,28 +25,6 @@ enum resize_edge {
|
|||
|
||||
struct sway_container;
|
||||
|
||||
struct sway_root {
|
||||
struct wlr_output_layout *output_layout;
|
||||
|
||||
struct wl_listener output_layout_change;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link
|
||||
#endif
|
||||
struct wl_list drag_icons; // sway_drag_icon::link
|
||||
|
||||
struct wlr_texture *debug_tree;
|
||||
|
||||
struct wl_list outputs; // sway_output::link
|
||||
|
||||
list_t *scratchpad; // struct sway_container
|
||||
|
||||
struct {
|
||||
struct wl_signal new_container;
|
||||
} events;
|
||||
};
|
||||
|
||||
void layout_init(void);
|
||||
|
||||
void container_add_child(struct sway_container *parent,
|
||||
struct sway_container *child);
|
||||
|
||||
|
|
|
|||
57
include/sway/tree/root.h
Normal file
57
include/sway/tree/root.h
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#ifndef _SWAY_ROOT_H
|
||||
#define _SWAY_ROOT_H
|
||||
#include <wayland-server-core.h>
|
||||
#include <wayland-util.h>
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/render/wlr_texture.h>
|
||||
#include "sway/tree/container.h"
|
||||
#include "config.h"
|
||||
#include "list.h"
|
||||
|
||||
extern struct sway_container root_container;
|
||||
|
||||
struct sway_root {
|
||||
struct wlr_output_layout *output_layout;
|
||||
|
||||
struct wl_listener output_layout_change;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link
|
||||
#endif
|
||||
struct wl_list drag_icons; // sway_drag_icon::link
|
||||
|
||||
struct wlr_texture *debug_tree;
|
||||
|
||||
struct wl_list outputs; // sway_output::link
|
||||
|
||||
list_t *scratchpad; // struct sway_container
|
||||
|
||||
struct {
|
||||
struct wl_signal new_container;
|
||||
} events;
|
||||
};
|
||||
|
||||
void root_create(void);
|
||||
|
||||
void root_destroy(void);
|
||||
|
||||
/**
|
||||
* Move a container to the scratchpad.
|
||||
*/
|
||||
void root_scratchpad_add_container(struct sway_container *con);
|
||||
|
||||
/**
|
||||
* Remove a container from the scratchpad.
|
||||
*/
|
||||
void root_scratchpad_remove_container(struct sway_container *con);
|
||||
|
||||
/**
|
||||
* Show a single scratchpad container.
|
||||
*/
|
||||
void root_scratchpad_show(struct sway_container *con);
|
||||
|
||||
/**
|
||||
* Hide a single scratchpad container.
|
||||
*/
|
||||
void root_scratchpad_hide(struct sway_container *con);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue