diff options
-rw-r--r-- | sway/layout.c | 5 | ||||
-rw-r--r-- | 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); } @@ -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; } |