summaryrefslogtreecommitdiff
path: root/sway/commands.c
diff options
context:
space:
mode:
authortaiyu <[email protected]>2015-08-19 01:06:15 -0700
committertaiyu <[email protected]>2015-08-19 01:06:15 -0700
commitc5a69828934bf07db9062bd5f24bb2ff94b45b4a (patch)
tree5d580fed19fa2aa25014fe234edc6db14cfaa652 /sway/commands.c
parente16a4015ff216594eeb237ef81534bfaea7533d6 (diff)
fixed some more bugs, moved layout_log into log.ch, restored focus_parent
Diffstat (limited to 'sway/commands.c')
-rw-r--r--sway/commands.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sway/commands.c b/sway/commands.c
index 6e1f1848..7dde78bd 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -182,20 +182,22 @@ static bool cmd_floating(struct sway_config *config, int argc, char **argv) {
if (view->type != C_VIEW) {
return true;
}
- int i;
// Change from nonfloating to floating
if (!view->is_floating) {
- remove_child(view);
+ //Remove view from its current location
+ destroy_container(remove_child(view));
+
+ //and move it into workspace floating
add_floating(active_workspace,view);
view->x = (active_workspace->width - view->width)/2;
view->y = (active_workspace->height - view->height)/2;
- arrange_windows(active_workspace, -1, -1);
if (view->desired_width != -1) {
view->width = view->desired_width;
}
if (view->desired_height != -1) {
view->height = view->desired_height;
}
+ arrange_windows(active_workspace, -1, -1);
} else {
// Delete the view from the floating list and unset its is_floating flag
// Using length-1 as the index is safe because the view must be the currently
@@ -221,10 +223,10 @@ static bool cmd_floating(struct sway_config *config, int argc, char **argv) {
add_sibling(focused, view);
}
// Refocus on the view once its been put back into the layout
- set_focused_container(view);
arrange_windows(active_workspace, -1, -1);
return true;
}
+ set_focused_container(view);
}
return true;