diff options
author | Alex Maese <memaese@hotmail.com> | 2022-06-09 18:51:15 -0500 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2022-09-19 07:26:45 -0400 |
commit | 52f0e3a4d5bc5900df821b82a2c6941f57eaca25 (patch) | |
tree | 973d60e0f2d0d5ad7fe63aa1b38e549987c6d11a /sway/ipc-json.c | |
parent | sway: Add non-desktop-output type (diff) | |
download | sway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.tar.gz sway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.tar.zst sway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.zip |
sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
Diffstat (limited to 'sway/ipc-json.c')
-rw-r--r-- | sway/ipc-json.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 63c182f2..763fb3fe 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c | |||
@@ -240,10 +240,7 @@ static json_object *ipc_json_create_node(int id, const char* type, char *name, | |||
240 | return object; | 240 | return object; |
241 | } | 241 | } |
242 | 242 | ||
243 | static void ipc_json_describe_output(struct sway_output *output, | 243 | static void ipc_json_describe_wlr_output(struct wlr_output *wlr_output, json_object *object) { |
244 | json_object *object) { | ||
245 | struct wlr_output *wlr_output = output->wlr_output; | ||
246 | |||
247 | json_object_object_add(object, "primary", json_object_new_boolean(false)); | 244 | json_object_object_add(object, "primary", json_object_new_boolean(false)); |
248 | json_object_object_add(object, "make", | 245 | json_object_object_add(object, "make", |
249 | json_object_new_string(wlr_output->make ? wlr_output->make : "Unknown")); | 246 | json_object_new_string(wlr_output->make ? wlr_output->make : "Unknown")); |
@@ -267,11 +264,17 @@ static void ipc_json_describe_output(struct sway_output *output, | |||
267 | json_object_object_add(object, "modes", modes_array); | 264 | json_object_object_add(object, "modes", modes_array); |
268 | } | 265 | } |
269 | 266 | ||
267 | static void ipc_json_describe_output(struct sway_output *output, | ||
268 | json_object *object) { | ||
269 | ipc_json_describe_wlr_output(output->wlr_output, object); | ||
270 | } | ||
271 | |||
270 | static void ipc_json_describe_enabled_output(struct sway_output *output, | 272 | static void ipc_json_describe_enabled_output(struct sway_output *output, |
271 | json_object *object) { | 273 | json_object *object) { |
272 | ipc_json_describe_output(output, object); | 274 | ipc_json_describe_output(output, object); |
273 | 275 | ||
274 | struct wlr_output *wlr_output = output->wlr_output; | 276 | struct wlr_output *wlr_output = output->wlr_output; |
277 | json_object_object_add(object, "non_desktop", json_object_new_boolean(false)); | ||
275 | json_object_object_add(object, "active", json_object_new_boolean(true)); | 278 | json_object_object_add(object, "active", json_object_new_boolean(true)); |
276 | json_object_object_add(object, "dpms", | 279 | json_object_object_add(object, "dpms", |
277 | json_object_new_boolean(wlr_output->enabled)); | 280 | json_object_new_boolean(wlr_output->enabled)); |
@@ -349,6 +352,7 @@ json_object *ipc_json_describe_disabled_output(struct sway_output *output) { | |||
349 | 352 | ||
350 | ipc_json_describe_output(output, object); | 353 | ipc_json_describe_output(output, object); |
351 | 354 | ||
355 | json_object_object_add(object, "non_desktop", json_object_new_boolean(false)); | ||
352 | json_object_object_add(object, "type", json_object_new_string("output")); | 356 | json_object_object_add(object, "type", json_object_new_string("output")); |
353 | json_object_object_add(object, "name", | 357 | json_object_object_add(object, "name", |
354 | json_object_new_string(wlr_output->name)); | 358 | json_object_new_string(wlr_output->name)); |
@@ -370,6 +374,21 @@ json_object *ipc_json_describe_disabled_output(struct sway_output *output) { | |||
370 | return object; | 374 | return object; |
371 | } | 375 | } |
372 | 376 | ||
377 | json_object *ipc_json_describe_non_desktop_output(struct sway_output_non_desktop *output) { | ||
378 | struct wlr_output *wlr_output = output->wlr_output; | ||
379 | |||
380 | json_object *object = json_object_new_object(); | ||
381 | |||
382 | ipc_json_describe_wlr_output(wlr_output, object); | ||
383 | |||
384 | json_object_object_add(object, "non_desktop", json_object_new_boolean(true)); | ||
385 | json_object_object_add(object, "type", json_object_new_string("output")); | ||
386 | json_object_object_add(object, "name", | ||
387 | json_object_new_string(wlr_output->name)); | ||
388 | |||
389 | return object; | ||
390 | } | ||
391 | |||
373 | static json_object *ipc_json_describe_scratchpad_output(void) { | 392 | static json_object *ipc_json_describe_scratchpad_output(void) { |
374 | struct wlr_box box; | 393 | struct wlr_box box; |
375 | root_get_box(root, &box); | 394 | root_get_box(root, &box); |