From 274e56a60256214d1f899c37f1c978e4b8470644 Mon Sep 17 00:00:00 2001
From: taiyu <taiyu.len@gmail.com>
Date: Wed, 26 Aug 2015 16:27:01 -0700
Subject: [PATCH] fixed move_container bug, log prints before aborting

---
 sway/layout.c | 5 ++++-
 sway/log.c    | 8 ++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/sway/layout.c b/sway/layout.c
index 72d3de77..4fdf7b51 100644
--- a/sway/layout.c
+++ b/sway/layout.c
@@ -130,6 +130,7 @@ swayc_t *remove_child(swayc_t *child) {
 			parent->focused = NULL;
 		}
 	}
+	child->parent = NULL;
 	// deactivate view
 	if (child->type == C_VIEW) {
 		wlc_view_set_state(child->handle, WLC_BIT_ACTIVATED, false);
@@ -219,7 +220,7 @@ void move_container(swayc_t *container,swayc_t* root,enum movement_direction dir
 }
 
 void move_container_to(swayc_t* container, swayc_t* destination) {
-	if (container->parent == destination) {
+	if (container == destination) {
 		return;
 	}
 	swayc_t *parent = remove_child(container);
@@ -236,8 +237,10 @@ void move_container_to(swayc_t* container, swayc_t* destination) {
 	}
 	// Destroy old container if we need to
 	parent = destroy_container(parent);
+	// Refocus
 	set_focused_container(get_focused_view(&root_container));
 	update_visibility(container);
+	update_visibility(parent);
 	arrange_windows(parent, -1, -1);
 	arrange_windows(destination->parent, -1, -1);
 }
diff --git a/sway/log.c b/sway/log.c
index 66898a28..efe00439 100644
--- a/sway/log.c
+++ b/sway/log.c
@@ -105,15 +105,15 @@ bool _sway_assert(bool condition, const char* format, ...) {
 		return true;
 	}
 
-#ifndef NDEBUG
-	raise(SIGABRT);
-#endif
-
 	va_list args;
 	va_start(args, format);
 	sway_log(L_ERROR, format, args);
 	va_end(args);
 
+#ifndef NDEBUG
+	raise(SIGABRT);
+#endif
+
 	return false;
 }