mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Adhere to ICCCM focus specification
For certain applications (e.g. JetBrains) the parent window controls input. We need to adhere to the ICCCM input focus specification to properly handle these cases. Relates to swaywm/wlroots#2604
This commit is contained in:
		
							parent
							
								
									38571e6a0c
								
							
						
					
					
						commit
						62ec528c8c
					
				
					 1 changed files with 12 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -785,7 +785,18 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
 | 
			
		|||
 | 
			
		||||
	view_execute_criteria(view);
 | 
			
		||||
 | 
			
		||||
	if (should_focus(view)) {
 | 
			
		||||
	bool set_focus = should_focus(view);
 | 
			
		||||
 | 
			
		||||
#if HAVE_XWAYLAND
 | 
			
		||||
	if (wlr_surface_is_xwayland_surface(wlr_surface)) {
 | 
			
		||||
		struct wlr_xwayland_surface *xsurface =
 | 
			
		||||
			wlr_xwayland_surface_from_wlr_surface(wlr_surface);
 | 
			
		||||
    	set_focus = (wlr_xwayland_icccm_input_model(xsurface) !=
 | 
			
		||||
			WLR_ICCCM_INPUT_MODEL_NONE) && set_focus;
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (set_focus) {
 | 
			
		||||
		input_manager_set_focus(&view->container->node);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue