diff --git a/include/i3ipc++/ipc.hpp b/include/i3ipc++/ipc.hpp index edbe6b4..2ae412f 100644 --- a/include/i3ipc++/ipc.hpp +++ b/include/i3ipc++/ipc.hpp @@ -202,6 +202,7 @@ struct container_t { window_properties_t window_properties; /// X11 window properties std::list< std::shared_ptr > nodes; + std::list< std::shared_ptr > floating_nodes; }; diff --git a/src/ipc.cpp b/src/ipc.cpp index b0b8fbb..e4f06bd 100644 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -136,6 +136,14 @@ static std::shared_ptr parse_container_from_json(const Json::Value } } + Json::Value floating_nodes = o["floating_nodes"]; + if (!floating_nodes.isNull()) { + IPC_JSON_ASSERT_TYPE_ARRAY(floating_nodes, "floating_nodes") + for (Json::ArrayIndex i = 0; i < floating_nodes.size(); i++) { + container->floating_nodes.push_back(parse_container_from_json(floating_nodes[i])); + } + } + container->window_properties = parse_window_props_from_json(o["window_properties"]); return container;