aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-20 10:37:52 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-20 10:37:52 +1000
commite1955c5c08d4131fd5d3e2a91ec8af05c3117eca (patch)
tree34ada4f6dfb4362aa37e6221f01a0561cc43a569 /sway/tree
parentClean up tracked outputs when an output is destroyed (diff)
downloadsway-e1955c5c08d4131fd5d3e2a91ec8af05c3117eca.tar.gz
sway-e1955c5c08d4131fd5d3e2a91ec8af05c3117eca.tar.zst
sway-e1955c5c08d4131fd5d3e2a91ec8af05c3117eca.zip
Fix crash when adding output
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/container.c3
-rw-r--r--sway/tree/view.c6
2 files changed, 5 insertions, 4 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index b932925d..6ea0cc94 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -764,8 +764,7 @@ void container_damage_whole(struct sway_container *container) {
764 * Return the output which will be used for scale purposes. 764 * Return the output which will be used for scale purposes.
765 * This is the most recently entered output. 765 * This is the most recently entered output.
766 */ 766 */
767static struct sway_output *container_get_effective_output( 767struct sway_output *container_get_effective_output(struct sway_container *con) {
768 struct sway_container *con) {
769 if (con->outputs->length == 0) { 768 if (con->outputs->length == 0) {
770 return NULL; 769 return NULL;
771 } 770 }
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 4abf1abb..2c0c1aa9 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -889,8 +889,10 @@ void view_add_mark(struct sway_view *view, char *mark) {
889 889
890static void update_marks_texture(struct sway_view *view, 890static void update_marks_texture(struct sway_view *view,
891 struct wlr_texture **texture, struct border_colors *class) { 891 struct wlr_texture **texture, struct border_colors *class) {
892 struct sway_output *output = 892 struct sway_output *output = container_get_effective_output(view->swayc);
893 view->swayc->outputs->items[view->swayc->outputs->length - 1]; 893 if (!output) {
894 return;
895 }
894 if (*texture) { 896 if (*texture) {
895 wlr_texture_destroy(*texture); 897 wlr_texture_destroy(*texture);
896 *texture = NULL; 898 *texture = NULL;