From 8fc932833499552bdc8f776b8f5ba9551ae45423 Mon Sep 17 00:00:00 2001 From: "Franklin \"Snaipe\" Mathieu" Date: Mon, 22 Oct 2018 20:17:27 +0100 Subject: xwayland: populate window_properties in json for views window_properties is documented to contain a subset of the X11 properties of a window (its title, class, instance, role, and transient ID). This commit adds the missing json object from the get_tree output for xwayland windows only. This is a follow-up of #2911. Signed-off-by: Franklin "Snaipe" Mathieu --- sway/ipc-json.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'sway/ipc-json.c') diff --git a/sway/ipc-json.c b/sway/ipc-json.c index a29647ed..2cd0cb2d 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c @@ -266,6 +266,29 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object if (c->view->type == SWAY_VIEW_XWAYLAND) { json_object_object_add(object, "window", json_object_new_int(view_get_x11_window_id(c->view))); + + json_object *window_props = json_object_new_object(); + + json_object_object_add(window_props, "class", + class ? json_object_new_string(class) : NULL); + const char *instance = view_get_instance(c->view); + json_object_object_add(window_props, "instance", + instance ? json_object_new_string(instance) : NULL); + json_object_object_add(window_props, "title", + c->title ? json_object_new_string(c->title) : NULL); + + // the transient_for key is always present in i3's output + uint32_t parent_id = view_get_x11_parent_id(c->view); + json_object_object_add(window_props, "transient_for", + parent_id ? json_object_new_int(parent_id) : NULL); + + const char *role = view_get_window_role(c->view); + if (role) { + json_object_object_add(window_props, "window_role", + json_object_new_string(role)); + } + + json_object_object_add(object, "window_properties", window_props); } #endif } -- cgit v1.2.3-54-g00ecf