From eabfb6c5598d5b655b40d8677d97b58cce757ef5 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Mon, 20 Feb 2017 06:48:33 -0500 Subject: [PATCH] Add * policies and fix bug --- include/sway/config.h | 7 ++++++- sway/commands.c | 2 ++ sway/commands/ipc.c | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/sway/config.h b/include/sway/config.h index c3a916b1..ba49b9a0 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -224,7 +224,12 @@ enum ipc_feature { IPC_FEATURE_EVENT_MODE = 1024, IPC_FEATURE_EVENT_WINDOW = 2048, IPC_FEATURE_EVENT_BINDING = 4096, - IPC_FEATURE_EVENT_INPUT = 8192 + IPC_FEATURE_EVENT_INPUT = 8192, + + IPC_FEATURE_ALL_COMMANDS = 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128, + IPC_FEATURE_ALL_EVENTS = 256 | 512 | 1024 | 2048 | 4096 | 8192, + + IPC_FEATURE_ALL = IPC_FEATURE_ALL_COMMANDS | IPC_FEATURE_ALL_EVENTS, }; struct ipc_policy { diff --git a/sway/commands.c b/sway/commands.c index c15cb00a..068e8866 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -297,6 +297,7 @@ static struct cmd_handler bar_colors_handlers[] = { }; static struct cmd_handler ipc_handlers[] = { + { "*", cmd_ipc_cmd }, { "bar-config", cmd_ipc_cmd }, { "command", cmd_ipc_cmd }, { "events", cmd_ipc_events }, @@ -308,6 +309,7 @@ static struct cmd_handler ipc_handlers[] = { }; static struct cmd_handler ipc_event_handlers[] = { + { "*", cmd_ipc_event_cmd }, { "binding", cmd_ipc_event_cmd }, { "input", cmd_ipc_event_cmd }, { "mode", cmd_ipc_event_cmd }, diff --git a/sway/commands/ipc.c b/sway/commands/ipc.c index 6b29706e..d49aab64 100644 --- a/sway/commands/ipc.c +++ b/sway/commands/ipc.c @@ -32,6 +32,7 @@ struct cmd_results *cmd_ipc(int argc, char **argv) { } current_policy = alloc_ipc_policy(program); + list_add(config->ipc_policies, current_policy); return cmd_results_new(CMD_BLOCK_IPC, NULL, NULL); } @@ -74,6 +75,7 @@ struct cmd_results *cmd_ipc_cmd(int argc, char **argv) { char *name; enum ipc_feature type; } types[] = { + { "*", IPC_FEATURE_ALL_COMMANDS }, { "command", IPC_FEATURE_COMMAND }, { "workspaces", IPC_FEATURE_GET_WORKSPACES }, { "outputs", IPC_FEATURE_GET_OUTPUTS }, @@ -123,6 +125,7 @@ struct cmd_results *cmd_ipc_event_cmd(int argc, char **argv) { char *name; enum ipc_feature type; } types[] = { + { "*", IPC_FEATURE_ALL_EVENTS }, { "workspace", IPC_FEATURE_EVENT_WORKSPACE }, { "output", IPC_FEATURE_EVENT_OUTPUT }, { "mode", IPC_FEATURE_EVENT_MODE },