From c94c41d1db80138529f0942fa5b4e04e609be3e4 Mon Sep 17 00:00:00 2001 From: Luminarys Date: Sun, 16 Aug 2015 11:41:41 -0500 Subject: Added in kill command --- sway/commands.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sway/commands.c b/sway/commands.c index 7ddbe17e..02fdcf6c 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -188,6 +188,12 @@ static bool cmd_focus_follows_mouse(struct sway_config *config, int argc, char * return true; } +static bool cmd_kill(struct sway_config *config, int argc, char **argv) { + swayc_t *view = get_focused_container(&root_container); + wlc_view_close(view->handle); + return true; +} + static bool cmd_layout(struct sway_config *config, int argc, char **argv) { if (!checkarg(argc, "layout", EXPECTED_MORE_THAN, 0)) { return false; @@ -345,6 +351,7 @@ static struct cmd_handler handlers[] = { { "focus", cmd_focus }, { "focus_follows_mouse", cmd_focus_follows_mouse }, { "fullscreen", cmd_fullscreen }, + { "kill", cmd_kill }, { "layout", cmd_layout }, { "log_colors", cmd_log_colors }, { "reload", cmd_reload }, -- cgit v1.2.3 From dfaf3a059f3ecb97806f33c9674d7895011d623d Mon Sep 17 00:00:00 2001 From: Luminarys Date: Sun, 16 Aug 2015 11:54:37 -0500 Subject: Added in better exit handling --- sway/commands.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sway/commands.c b/sway/commands.c index 02fdcf6c..5cb661eb 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -12,6 +12,7 @@ #include "log.h" #include "workspace.h" #include "commands.h" +#include "container.h" struct modifier_key { char *name; @@ -152,11 +153,18 @@ static bool cmd_exec(struct sway_config *config, int argc, char **argv) { return cmd_exec_always(config, argc, argv); } +static void kill_views(swayc_t *container, void *data) { + if (container->type == C_VIEW) { + wlc_view_close(container->handle); + } +} + static bool cmd_exit(struct sway_config *config, int argc, char **argv) { if (!checkarg(argc, "exit", EXPECTED_EQUAL_TO, 0)) { return false; } - // TODO: Some kind of clean up is probably in order + // Close all views + container_map(&root_container, kill_views, NULL); exit(0); return true; } @@ -190,8 +198,8 @@ static bool cmd_focus_follows_mouse(struct sway_config *config, int argc, char * static bool cmd_kill(struct sway_config *config, int argc, char **argv) { swayc_t *view = get_focused_container(&root_container); - wlc_view_close(view->handle); - return true; + wlc_view_close(view->handle); + return true; } static bool cmd_layout(struct sway_config *config, int argc, char **argv) { -- cgit v1.2.3