diff options
| -rw-r--r-- | sway/ipc-server.c | 15 | 
1 files changed, 13 insertions, 2 deletions
| diff --git a/sway/ipc-server.c b/sway/ipc-server.c index 6466d263..aa0f0fad 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c @@ -619,8 +619,19 @@ void ipc_client_handle_command(struct ipc_client *client) {  		json_object *outputs = json_object_new_array();  		for (int i = 0; i < root->outputs->length; ++i) {  			struct sway_output *output = root->outputs->items[i]; -			json_object_array_add(outputs, -				ipc_json_describe_node(&output->node)); +			json_object *output_json = ipc_json_describe_node(&output->node); + +			// override the default focused indicator because it's set +			// differently for the get_outputs reply +			struct sway_seat *seat = input_manager_get_default_seat(); +			struct sway_workspace *focused_ws = +				seat_get_focused_workspace(seat); +			bool focused = focused_ws && output == focused_ws->output; +			json_object_object_del(output_json, "focused"); +			json_object_object_add(output_json, "focused", +				json_object_new_boolean(focused)); + +			json_object_array_add(outputs, output_json);  		}  		struct sway_output *output;  		wl_list_for_each(output, &root->all_outputs, link) { | 
