aboutsummaryrefslogtreecommitdiffstats
path: root/sway/ipc-json.c
diff options
context:
space:
mode:
authorLibravatar llyyr <llyyr@yukari.in>2024-02-27 01:40:22 +0530
committerLibravatar Simon Ser <contact@emersion.fr>2024-02-29 00:51:43 +0100
commit2867ef646b67138a796b7d5ae46428c255cc928f (patch)
tree1ec60ea569a9fa994d2f1248e937e32ea32ec47c /sway/ipc-json.c
parentConvert to new pointer enums (diff)
downloadsway-2867ef646b67138a796b7d5ae46428c255cc928f.tar.gz
sway-2867ef646b67138a796b7d5ae46428c255cc928f.tar.zst
sway-2867ef646b67138a796b7d5ae46428c255cc928f.zip
ipc: add `floating` property to GET_TREE
i3 has had this property for over a decade but it wasn't documented until a couple of years ago, so it was likely missed when developing sway. Add the property to get us closer to ipc parity with i3.
Diffstat (limited to 'sway/ipc-json.c')
-rw-r--r--sway/ipc-json.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index 58356d4e..84e164e4 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -288,6 +288,7 @@ static json_object *ipc_json_create_node(int id, const char* type, char *name,
288 json_object_object_add(object, "focus", focus); 288 json_object_object_add(object, "focus", focus);
289 json_object_object_add(object, "fullscreen_mode", json_object_new_int(0)); 289 json_object_object_add(object, "fullscreen_mode", json_object_new_int(0));
290 json_object_object_add(object, "sticky", json_object_new_boolean(false)); 290 json_object_object_add(object, "sticky", json_object_new_boolean(false));
291 json_object_object_add(object, "floating", NULL);
291 292
292 return object; 293 return object;
293} 294}
@@ -675,7 +676,8 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object
675static void ipc_json_describe_container(struct sway_container *c, json_object *object) { 676static void ipc_json_describe_container(struct sway_container *c, json_object *object) {
676 json_object_object_add(object, "name", 677 json_object_object_add(object, "name",
677 c->title ? json_object_new_string(c->title) : NULL); 678 c->title ? json_object_new_string(c->title) : NULL);
678 if (container_is_floating(c)) { 679 bool floating = container_is_floating(c);
680 if (floating) {
679 json_object_object_add(object, "type", 681 json_object_object_add(object, "type",
680 json_object_new_string("floating_con")); 682 json_object_new_string("floating_con"));
681 } 683 }
@@ -693,6 +695,10 @@ static void ipc_json_describe_container(struct sway_container *c, json_object *o
693 json_object_object_add(object, "urgent", json_object_new_boolean(urgent)); 695 json_object_object_add(object, "urgent", json_object_new_boolean(urgent));
694 json_object_object_add(object, "sticky", json_object_new_boolean(c->is_sticky)); 696 json_object_object_add(object, "sticky", json_object_new_boolean(c->is_sticky));
695 697
698 // sway doesn't track the floating reason, so we can't use "auto_on" or "user_off"
699 json_object_object_add(object, "floating",
700 json_object_new_string(floating ? "user_on" : "auto_off"));
701
696 json_object_object_add(object, "fullscreen_mode", 702 json_object_object_add(object, "fullscreen_mode",
697 json_object_new_int(c->pending.fullscreen_mode)); 703 json_object_new_int(c->pending.fullscreen_mode));
698 704