The murder command destroys the client that a given surface is connected to.master
							parent
							
								
									02ca18fe29
								
							
						
					
					
						commit
						0b50e4acef
					
				| @ -0,0 +1,31 @@ | |||||||
|  | #include "log.h" | ||||||
|  | #include "sway/input/input-manager.h" | ||||||
|  | #include "sway/input/seat.h" | ||||||
|  | #include "sway/tree/container.h" | ||||||
|  | #include "sway/tree/view.h" | ||||||
|  | #include "sway/tree/workspace.h" | ||||||
|  | #include "sway/commands.h" | ||||||
|  | 
 | ||||||
|  | static void close_container_iterator(struct sway_container *con, void *data) { | ||||||
|  | 	if (con->view) { | ||||||
|  | 		view_murder(con->view); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | struct cmd_results *cmd_murder(int argc, char **argv) { | ||||||
|  |     if (!root->outputs->length) { | ||||||
|  | 		return cmd_results_new(CMD_INVALID, | ||||||
|  | 				"Can't run this command while there's no outputs connected."); | ||||||
|  | 	} | ||||||
|  | 	struct sway_container *con = config->handler_context.container; | ||||||
|  | 	struct sway_workspace *ws = config->handler_context.workspace; | ||||||
|  | 
 | ||||||
|  | 	if (con) { | ||||||
|  | 		close_container_iterator(con, NULL); | ||||||
|  | 		container_for_each_child(con, close_container_iterator, NULL); | ||||||
|  | 	} else { | ||||||
|  | 		workspace_for_each_container(ws, close_container_iterator, NULL); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return cmd_results_new(CMD_SUCCESS, NULL); | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in new issue