handle command failure
This commit is contained in:
parent
a8275b4713
commit
df1341a220
2 changed files with 30 additions and 8 deletions
|
@ -26,9 +26,9 @@ static const char *termcmd[] = { "foot", NULL };
|
|||
/* click can be ClkTagBar, ClkLayout, ClkMode, ClkTitle, ClkStatus */
|
||||
static const Button buttons[] = {
|
||||
/* click button function argument */
|
||||
{ ClkTagBar, BTN_LEFT, cmd, {.s = "set-focused-tags"} },
|
||||
{ ClkTagBar, BTN_RIGHT, cmd, {.s = "toggle-focused-tags"} },
|
||||
{ ClkTagBar, BTN_MIDDLE, cmd, {.s = "set-view-tags"} },
|
||||
{ ClkTitle, BTN_LEFT, cmd, {.s = "zoom"} },
|
||||
{ ClkTagBar, BTN_LEFT, command, {.s = "set-focused-tags"} },
|
||||
{ ClkTagBar, BTN_RIGHT, command, {.s = "toggle-focused-tags"} },
|
||||
{ ClkTagBar, BTN_MIDDLE, command, {.s = "set-view-tags"} },
|
||||
{ ClkTitle, BTN_LEFT, command, {.s = "zoom"} },
|
||||
{ ClkStatus, BTN_MIDDLE, spawn, {.v = termcmd } },
|
||||
};
|
||||
|
|
30
dam.c
30
dam.c
|
@ -58,7 +58,7 @@ typedef struct {
|
|||
const Arg arg;
|
||||
} Button;
|
||||
|
||||
static void cmd(const Arg *arg);
|
||||
static void command(const Arg *arg);
|
||||
static void spawn(const Arg *arg);
|
||||
|
||||
#include "config.h"
|
||||
|
@ -130,7 +130,29 @@ parse_color(uint32_t *dest, const char *src)
|
|||
}
|
||||
|
||||
static void
|
||||
cmd(const Arg *arg)
|
||||
command_handle_message(void *data,
|
||||
struct zriver_command_callback_v1 *zriver_command_callback_v1,
|
||||
const char *message)
|
||||
{
|
||||
if (message && message[0] != '\0')
|
||||
fprintf(stderr, "command message: %s\n", message);
|
||||
}
|
||||
|
||||
static struct zriver_command_callback_v1_listener callback_listener = {
|
||||
.success = command_handle_message,
|
||||
.failure = command_handle_message,
|
||||
};
|
||||
|
||||
static void
|
||||
command_run(void)
|
||||
{
|
||||
struct zriver_command_callback_v1 *callback;
|
||||
callback = zriver_control_v1_run_command(control, seat);
|
||||
zriver_command_callback_v1_add_listener(callback, &callback_listener, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
command(const Arg *arg)
|
||||
{
|
||||
char argbuf[4];
|
||||
zriver_control_v1_add_argument(control, arg->s);
|
||||
|
@ -138,7 +160,7 @@ cmd(const Arg *arg)
|
|||
snprintf(argbuf, sizeof(argbuf), "%d", arg->ui);
|
||||
zriver_control_v1_add_argument(control, argbuf);
|
||||
}
|
||||
zriver_control_v1_run_command(control, seat);
|
||||
command_run();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -148,7 +170,7 @@ spawn(const Arg *arg)
|
|||
zriver_control_v1_add_argument(control, "spawn");
|
||||
for (i = (char *const *)arg->v; *i != NULL; i++)
|
||||
zriver_control_v1_add_argument(control, *i);
|
||||
zriver_control_v1_run_command(control, seat);
|
||||
command_run();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Reference in a new issue