Merge pull request #3206 from RedSoxFan/ipc-subscribe

Implement support for swaymsg -t SUBSCRIBE [-m]
This commit is contained in:
emersion 2018-11-28 17:58:36 +01:00 committed by GitHub
commit 67c7cc53ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 76 additions and 18 deletions

View file

@ -668,7 +668,8 @@ void ipc_client_handle_command(struct ipc_client *client) {
// TODO: Check if they're permitted to use these events
struct json_object *request = json_tokener_parse(buf);
if (request == NULL) {
client_valid = ipc_send_reply(client, "{\"success\": false}", 18);
const char msg[] = "[{\"success\": false}]";
client_valid = ipc_send_reply(client, msg, strlen(msg));
wlr_log(WLR_INFO, "Failed to parse subscribe request");
goto exit_cleanup;
}
@ -695,8 +696,8 @@ void ipc_client_handle_command(struct ipc_client *client) {
client->subscribed_events |= event_mask(IPC_EVENT_TICK);
is_tick = true;
} else {
client_valid =
ipc_send_reply(client, "{\"success\": false}", 18);
const char msg[] = "[{\"success\": false}]";
client_valid = ipc_send_reply(client, msg, strlen(msg));
json_object_put(request);
wlr_log(WLR_INFO, "Unsupported event type in subscribe request");
goto exit_cleanup;
@ -704,10 +705,12 @@ void ipc_client_handle_command(struct ipc_client *client) {
}
json_object_put(request);
client_valid = ipc_send_reply(client, "{\"success\": true}", 17);
const char msg[] = "[{\"success\": true}]";
client_valid = ipc_send_reply(client, msg, strlen(msg));
if (is_tick) {
client->current_command = IPC_EVENT_TICK;
ipc_send_reply(client, "{\"first\": true, \"payload\": \"\"}", 30);
const char tickmsg[] = "{\"first\": true, \"payload\": \"\"}";
ipc_send_reply(client, tickmsg, strlen(tickmsg));
}
goto exit_cleanup;
}