mirror of
				https://github.com/swaywm/sway.git
				synced 2025-10-29 05:40:18 -04:00 
			
		
		
		
	input/seat: inline seat_set_exclusive_client() with NULL client
This commit is contained in:
		
							parent
							
								
									7ad8c80bfe
								
							
						
					
					
						commit
						607b8aed0c
					
				
					 2 changed files with 8 additions and 10 deletions
				
			
		|  | @ -1371,15 +1371,6 @@ void seat_set_focus_layer(struct sway_seat *seat, | |||
| 
 | ||||
| void seat_set_exclusive_client(struct sway_seat *seat, | ||||
| 		struct wl_client *client) { | ||||
| 	if (!client) { | ||||
| 		// Triggers a refocus of the topmost surface layer if necessary
 | ||||
| 		// TODO: Make layer surface focus per-output based on cursor position
 | ||||
| 		for (int i = 0; i < root->outputs->length; ++i) { | ||||
| 			struct sway_output *output = root->outputs->items[i]; | ||||
| 			arrange_layers(output); | ||||
| 		} | ||||
| 		return; | ||||
| 	} | ||||
| 	if (seat->focused_layer) { | ||||
| 		if (wl_resource_get_client(seat->focused_layer->resource) != client) { | ||||
| 			seat_set_focus_layer(seat, NULL); | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| #include "sway/input/cursor.h" | ||||
| #include "sway/input/keyboard.h" | ||||
| #include "sway/input/seat.h" | ||||
| #include "sway/layers.h" | ||||
| #include "sway/output.h" | ||||
| #include "sway/server.h" | ||||
| #include "sway/surface.h" | ||||
|  | @ -129,7 +130,6 @@ static void handle_unlock(struct wl_listener *listener, void *data) { | |||
| 
 | ||||
| 	struct sway_seat *seat; | ||||
| 	wl_list_for_each(seat, &server.input->seats, link) { | ||||
| 		seat_set_exclusive_client(seat, NULL); | ||||
| 		// copied from seat_set_focus_layer -- deduplicate?
 | ||||
| 		struct sway_node *previous = seat_get_focus_inactive(seat, &root->node); | ||||
| 		if (previous) { | ||||
|  | @ -139,6 +139,13 @@ static void handle_unlock(struct wl_listener *listener, void *data) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Triggers a refocus of the topmost surface layer if necessary
 | ||||
| 	// TODO: Make layer surface focus per-output based on cursor position
 | ||||
| 	for (int i = 0; i < root->outputs->length; ++i) { | ||||
| 		struct sway_output *output = root->outputs->items[i]; | ||||
| 		arrange_layers(output); | ||||
| 	} | ||||
| 
 | ||||
| 	// redraw everything
 | ||||
| 	for (int i = 0; i < root->outputs->length; ++i) { | ||||
| 		struct sway_output *output = root->outputs->items[i]; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Ser
						Simon Ser