aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorLuminarys <kizunanohikari@gmail.com>2015-08-16 11:54:37 -0500
committerLuminarys <kizunanohikari@gmail.com>2015-08-16 11:54:37 -0500
commitdfaf3a059f3ecb97806f33c9674d7895011d623d (patch)
tree0f28748577726d502212600d8cc743cafaa4cc6f /sway
parentc94c41d1db80138529f0942fa5b4e04e609be3e4 (diff)
downloadsway-dfaf3a059f3ecb97806f33c9674d7895011d623d.tar.xz
Added in better exit handling
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c14
1 files 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) {