mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	Revert "desktop: allow re-focus between "globally active" views of the same PID"
This is undesired when a focusable popup (e.g. applications menu) of an
unfocusable view (e.g. XWayland panel) is closed.
This reverts commit f6e3527767.
			
			
This commit is contained in:
		
							parent
							
								
									4eb34f97de
								
							
						
					
					
						commit
						11cdad0c11
					
				
					 3 changed files with 5 additions and 30 deletions
				
			
		
							
								
								
									
										18
									
								
								src/view.c
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								src/view.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -163,28 +163,16 @@ view_wants_focus(struct view *view)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
bool
 | 
			
		||||
view_is_focusable_from(struct view *view, struct wlr_surface *prev)
 | 
			
		||||
view_is_focusable(struct view *view)
 | 
			
		||||
{
 | 
			
		||||
	assert(view);
 | 
			
		||||
	if (!view->surface) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	if (!view->mapped && !view->minimized) {
 | 
			
		||||
	if (view_wants_focus(view) != VIEW_WANTS_FOCUS_ALWAYS) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	enum view_wants_focus wants_focus = view_wants_focus(view);
 | 
			
		||||
	/*
 | 
			
		||||
	 * Consider "offer focus" (Globally Active) views as focusable
 | 
			
		||||
	 * only if another surface from the same application already had
 | 
			
		||||
	 * focus. The goal is to allow focusing a parent window when a
 | 
			
		||||
	 * dialog/popup is closed, but still avoid focusing standalone
 | 
			
		||||
	 * panels/toolbars/notifications. Note that we are basically
 | 
			
		||||
	 * guessing whether Globally Active views want focus, and will
 | 
			
		||||
	 * probably be wrong some of the time.
 | 
			
		||||
	 */
 | 
			
		||||
	return (wants_focus == VIEW_WANTS_FOCUS_ALWAYS
 | 
			
		||||
		|| (wants_focus == VIEW_WANTS_FOCUS_OFFER
 | 
			
		||||
			&& prev && view_is_related(view, prev)));
 | 
			
		||||
	return (view->mapped || view->minimized);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue