mirror of
https://github.com/swaywm/sway.git
synced 2024-11-22 16:01:27 +00:00
Merge pull request #42 from Luminarys/master
Added in kill command and better exit handling.
This commit is contained in:
commit
6c233bdb8f
|
@ -12,6 +12,7 @@
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "workspace.h"
|
#include "workspace.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
|
#include "container.h"
|
||||||
|
|
||||||
struct modifier_key {
|
struct modifier_key {
|
||||||
char *name;
|
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);
|
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) {
|
static bool cmd_exit(struct sway_config *config, int argc, char **argv) {
|
||||||
if (!checkarg(argc, "exit", EXPECTED_EQUAL_TO, 0)) {
|
if (!checkarg(argc, "exit", EXPECTED_EQUAL_TO, 0)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// TODO: Some kind of clean up is probably in order
|
// Close all views
|
||||||
|
container_map(&root_container, kill_views, NULL);
|
||||||
exit(0);
|
exit(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -188,6 +196,12 @@ static bool cmd_focus_follows_mouse(struct sway_config *config, int argc, char *
|
||||||
return true;
|
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) {
|
static bool cmd_layout(struct sway_config *config, int argc, char **argv) {
|
||||||
if (!checkarg(argc, "layout", EXPECTED_MORE_THAN, 0)) {
|
if (!checkarg(argc, "layout", EXPECTED_MORE_THAN, 0)) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -345,6 +359,7 @@ static struct cmd_handler handlers[] = {
|
||||||
{ "focus", cmd_focus },
|
{ "focus", cmd_focus },
|
||||||
{ "focus_follows_mouse", cmd_focus_follows_mouse },
|
{ "focus_follows_mouse", cmd_focus_follows_mouse },
|
||||||
{ "fullscreen", cmd_fullscreen },
|
{ "fullscreen", cmd_fullscreen },
|
||||||
|
{ "kill", cmd_kill },
|
||||||
{ "layout", cmd_layout },
|
{ "layout", cmd_layout },
|
||||||
{ "log_colors", cmd_log_colors },
|
{ "log_colors", cmd_log_colors },
|
||||||
{ "reload", cmd_reload },
|
{ "reload", cmd_reload },
|
||||||
|
|
Loading…
Reference in a new issue