summaryrefslogtreecommitdiffstats
path: root/sway/tree/view.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index aa010a40..3927c195 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -7,15 +7,10 @@
7#include "sway/tree/layout.h" 7#include "sway/tree/layout.h"
8#include "sway/tree/view.h" 8#include "sway/tree/view.h"
9 9
10struct sway_view *view_create(enum sway_view_type type, 10void view_init(struct sway_view *view, enum sway_view_type type,
11 const struct sway_view_impl *impl) { 11 const struct sway_view_impl *impl) {
12 struct sway_view *view = calloc(1, sizeof(struct sway_view));
13 if (view == NULL) {
14 return NULL;
15 }
16 view->type = type; 12 view->type = type;
17 view->impl = impl; 13 view->impl = impl;
18 return view;
19} 14}
20 15
21void view_destroy(struct sway_view *view) { 16void view_destroy(struct sway_view *view) {
@@ -28,6 +23,12 @@ void view_destroy(struct sway_view *view) {
28 } 23 }
29 24
30 container_destroy(view->swayc); 25 container_destroy(view->swayc);
26
27 if (view->impl->destroy) {
28 view->impl->destroy(view);
29 } else {
30 free(view);
31 }
31} 32}
32 33
33const char *view_get_title(struct sway_view *view) { 34const char *view_get_title(struct sway_view *view) {