Handle view destruction properly

This commit is contained in:
Drew DeVault 2017-11-25 16:30:15 -05:00
parent a57d462926
commit 8caabe59c2
6 changed files with 73 additions and 2 deletions

View file

@ -132,6 +132,8 @@ swayc_t *new_output(struct sway_output *sway_output);
swayc_t *new_workspace(swayc_t *output, const char *name);
swayc_t *new_view(swayc_t *sibling, struct sway_view *sway_view);
swayc_t *destroy_view(swayc_t *view);
swayc_t *swayc_parent_by_type(swayc_t *container, enum swayc_types type);
#endif

View file

@ -5,6 +5,7 @@ struct sway_container;
void init_layout(void);
void add_child(struct sway_container *parent, struct sway_container *child);
struct sway_container *remove_child(struct sway_container *child);
enum swayc_layouts default_layout(struct sway_container *output);
void sort_workspaces(struct sway_container *output);
void arrange_windows(struct sway_container *container, double width, double height);

View file

@ -14,6 +14,7 @@ struct sway_xdg_surface_v6 {
struct wl_listener request_move;
struct wl_listener request_resize;
struct wl_listener request_maximize;
struct wl_listener destroy;
int pending_width, pending_height;
};
@ -38,7 +39,6 @@ enum sway_view_prop {
* tree (shell surfaces).
*/
struct sway_view {
struct wl_listener destroy;
enum sway_view_type type;
struct sway_container *swayc;
struct wlr_surface *surface;