mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	view: only focus topmost view if unmapped view was focused
The unmap() handlers should only call desktop_focus_topmost_view() if the unmapped view was the focused view. Unmapping a view that was not focused should not change the focus. I expect this rarely had any effect in practice; it would only matter in a focus-follows-mouse config where some view other than the one on top was focused. But it still seems better to fix. Rather than repeating the logic in two places, create a small view_impl_unmap() helper. Perhaps more common "unmap" logic could be moved there in future.
This commit is contained in:
		
							parent
							
								
									8920e546db
								
							
						
					
					
						commit
						b053c9e375
					
				
					 4 changed files with 12 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -75,6 +75,15 @@ view_impl_map(struct view *view)
 | 
			
		|||
		view_get_string_prop(view, "title"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
view_impl_unmap(struct view *view)
 | 
			
		||||
{
 | 
			
		||||
	struct seat *seat = &view->server->seat;
 | 
			
		||||
	if (seat->seat->keyboard_state.focused_surface == view->surface) {
 | 
			
		||||
		desktop_focus_topmost_view(view->server);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool
 | 
			
		||||
resizing_edge(struct view *view, uint32_t edge)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue