Add * policies and fix bug

This commit is contained in:
Drew DeVault 2017-02-20 06:48:33 -05:00
parent 1980a08358
commit eabfb6c559
3 changed files with 11 additions and 1 deletions

View file

@ -224,7 +224,12 @@ enum ipc_feature {
IPC_FEATURE_EVENT_MODE = 1024, IPC_FEATURE_EVENT_MODE = 1024,
IPC_FEATURE_EVENT_WINDOW = 2048, IPC_FEATURE_EVENT_WINDOW = 2048,
IPC_FEATURE_EVENT_BINDING = 4096, 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 { struct ipc_policy {

View file

@ -297,6 +297,7 @@ static struct cmd_handler bar_colors_handlers[] = {
}; };
static struct cmd_handler ipc_handlers[] = { static struct cmd_handler ipc_handlers[] = {
{ "*", cmd_ipc_cmd },
{ "bar-config", cmd_ipc_cmd }, { "bar-config", cmd_ipc_cmd },
{ "command", cmd_ipc_cmd }, { "command", cmd_ipc_cmd },
{ "events", cmd_ipc_events }, { "events", cmd_ipc_events },
@ -308,6 +309,7 @@ static struct cmd_handler ipc_handlers[] = {
}; };
static struct cmd_handler ipc_event_handlers[] = { static struct cmd_handler ipc_event_handlers[] = {
{ "*", cmd_ipc_event_cmd },
{ "binding", cmd_ipc_event_cmd }, { "binding", cmd_ipc_event_cmd },
{ "input", cmd_ipc_event_cmd }, { "input", cmd_ipc_event_cmd },
{ "mode", cmd_ipc_event_cmd }, { "mode", cmd_ipc_event_cmd },

View file

@ -32,6 +32,7 @@ struct cmd_results *cmd_ipc(int argc, char **argv) {
} }
current_policy = alloc_ipc_policy(program); current_policy = alloc_ipc_policy(program);
list_add(config->ipc_policies, current_policy);
return cmd_results_new(CMD_BLOCK_IPC, NULL, NULL); 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; char *name;
enum ipc_feature type; enum ipc_feature type;
} types[] = { } types[] = {
{ "*", IPC_FEATURE_ALL_COMMANDS },
{ "command", IPC_FEATURE_COMMAND }, { "command", IPC_FEATURE_COMMAND },
{ "workspaces", IPC_FEATURE_GET_WORKSPACES }, { "workspaces", IPC_FEATURE_GET_WORKSPACES },
{ "outputs", IPC_FEATURE_GET_OUTPUTS }, { "outputs", IPC_FEATURE_GET_OUTPUTS },
@ -123,6 +125,7 @@ struct cmd_results *cmd_ipc_event_cmd(int argc, char **argv) {
char *name; char *name;
enum ipc_feature type; enum ipc_feature type;
} types[] = { } types[] = {
{ "*", IPC_FEATURE_ALL_EVENTS },
{ "workspace", IPC_FEATURE_EVENT_WORKSPACE }, { "workspace", IPC_FEATURE_EVENT_WORKSPACE },
{ "output", IPC_FEATURE_EVENT_OUTPUT }, { "output", IPC_FEATURE_EVENT_OUTPUT },
{ "mode", IPC_FEATURE_EVENT_MODE }, { "mode", IPC_FEATURE_EVENT_MODE },