aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/ipc-json.c36
-rw-r--r--sway/sway-ipc.7.scd2
2 files changed, 37 insertions, 1 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index 2e75b595..19fdba11 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -85,6 +85,35 @@ static const char *ipc_json_output_transform_description(enum wl_output_transfor
return NULL;
}
+#if HAVE_XWAYLAND
+static const char *ipc_json_xwindow_type_description(enum atom_name window_type) {
+ switch (window_type) {
+ case NET_WM_WINDOW_TYPE_NORMAL:
+ return "normal";
+ case NET_WM_WINDOW_TYPE_DIALOG:
+ return "dialog";
+ case NET_WM_WINDOW_TYPE_UTILITY:
+ return "utility";
+ case NET_WM_WINDOW_TYPE_TOOLBAR:
+ return "toolbar";
+ case NET_WM_WINDOW_TYPE_SPLASH:
+ return "splash";
+ case NET_WM_WINDOW_TYPE_MENU:
+ return "menu";
+ case NET_WM_WINDOW_TYPE_DROPDOWN_MENU:
+ return "dropdown_menu";
+ case NET_WM_WINDOW_TYPE_POPUP_MENU:
+ return "popup_menu";
+ case NET_WM_WINDOW_TYPE_TOOLTIP:
+ return "tooltip";
+ case NET_WM_WINDOW_TYPE_NOTIFICATION:
+ return "notification";
+ default:
+ return "unknown";
+ }
+}
+#endif
+
json_object *ipc_json_get_version(void) {
int major = 0, minor = 0, patch = 0;
json_object *version = json_object_new_object();
@@ -452,6 +481,13 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object
json_object_object_add(window_props, "window_role", json_object_new_string(role));
}
+ uint32_t window_type = view_get_window_type(c->view);
+ if (window_type) {
+ json_object_object_add(window_props, "window_type",
+ json_object_new_string(
+ ipc_json_xwindow_type_description(window_type)));
+ }
+
json_object_object_add(object, "window_properties", window_props);
}
#endif
diff --git a/sway/sway-ipc.7.scd b/sway/sway-ipc.7.scd
index 6725b255..ab61f864 100644
--- a/sway/sway-ipc.7.scd
+++ b/sway/sway-ipc.7.scd
@@ -382,7 +382,7 @@ node and will have the following properties:
|- window_properties
: object
: (Only xwayland views) An object containing the _title_, _class_, _instance_,
- _window\_role_, and _transient\_for_ for the view
+ _window\_role_, _window\_type_, and _transient\_for_ for the view
*Example Reply:*