aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sway/server.h1
-rw-r--r--sway/action-binder-v1.c8
-rw-r--r--sway/commands/action.c9
-rw-r--r--sway/server.c4
4 files changed, 12 insertions, 10 deletions
diff --git a/include/sway/server.h b/include/sway/server.h
index 39a8f557..2a9cb57a 100644
--- a/include/sway/server.h
+++ b/include/sway/server.h
@@ -115,7 +115,6 @@ struct sway_server {
struct wlr_action_binder_v1 *action_binder;
struct wl_listener action_binder_bind;
- struct wl_listener action_binder_unbind;
struct wl_listener action_binder_destroy;
struct wl_list pending_launcher_ctxs; // launcher_ctx::link
diff --git a/sway/action-binder-v1.c b/sway/action-binder-v1.c
index bf6ffef5..52452778 100644
--- a/sway/action-binder-v1.c
+++ b/sway/action-binder-v1.c
@@ -1,15 +1,15 @@
#include <wlr/types/wlr_action_binder_v1.h>
+#include "stringop.h"
void action_binder_v1_bind(struct wl_listener *listener, void *data) {
struct wlr_action_binder_v1_state *state = data;
struct wlr_action_binding_v1 *binding = NULL, *tmp = NULL;
wl_list_for_each_safe(binding, tmp, &state->bind_queue, link) {
- wlr_action_binder_v1_bind(binding, "");
+ char *msg = format_str("User defined trigger for %s:%s in the config file.",
+ binding->namespace, binding->name);
+ wlr_action_binding_v1_bind(binding, msg ? msg : "");
}
}
-void action_binder_v1_unbind(struct wl_listener *listener, void *data) {
-}
-
void action_binder_v1_delete(struct wl_listener *listener, void *data) {
}
diff --git a/sway/commands/action.c b/sway/commands/action.c
index 96cb3b59..877d5805 100644
--- a/sway/commands/action.c
+++ b/sway/commands/action.c
@@ -11,8 +11,13 @@ struct cmd_results *cmd_action(int argc, char **argv) {
return error;
}
- wlr_action_binder_v1_trigger(server.action_binder, argv[0], argv[1],
- EXT_ACTION_BINDING_V1_TRIGGER_TYPE_ONE_SHOT);
+ struct wlr_action_binder_v1_state *state = NULL;
+ struct wlr_action_binding_v1 *binding = NULL;
+ wl_list_for_each(state, &server.action_binder->states, link) {
+ wl_list_for_each(binding, &state->binds, link) {
+ wlr_action_binding_v1_trigger(binding, EXT_ACTION_BINDING_V1_TRIGGER_TYPE_ONE_SHOT, 0);
+ }
+ }
return cmd_results_new(CMD_SUCCESS, NULL);
}
diff --git a/sway/server.c b/sway/server.c
index 573a018b..10913b3f 100644
--- a/sway/server.c
+++ b/sway/server.c
@@ -9,6 +9,7 @@
#include <wlr/config.h>
#include <wlr/render/allocator.h>
#include <wlr/render/wlr_renderer.h>
+#include <wlr/types/wlr_action_binder_v1.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_content_type_v1.h>
#include <wlr/types/wlr_cursor_shape_v1.h>
@@ -354,9 +355,6 @@ bool server_init(struct sway_server *server) {
server->action_binder_bind.notify = action_binder_v1_bind;
wl_signal_add(&server->action_binder->events.bind,
&server->action_binder_bind);
- server->action_binder_unbind.notify = action_binder_v1_unbind;
- wl_signal_add(&server->action_binder->events.unbind,
- &server->action_binder_unbind);
server->action_binder_destroy.notify = action_binder_v1_delete;
wl_signal_add(&server->action_binder->events.destroy,
&server->action_binder_destroy);