mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	cursor: cancel popup grab on mouse-press outside client itself
...for example on any part of the server side decoration Supercedes #826 for xdg-shell popups Helped-by: @Consolatis
This commit is contained in:
		
							parent
							
								
									e39744f1d3
								
							
						
					
					
						commit
						3111c57d6f
					
				
					 1 changed files with 9 additions and 2 deletions
				
			
		
							
								
								
									
										11
									
								
								src/cursor.c
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								src/cursor.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -923,8 +923,15 @@ cursor_button_press(struct seat *seat, struct wlr_pointer_button_event *event)
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (ctx.type == LAB_SSD_ROOT && wlr_seat_pointer_has_grab(seat->seat)) {
 | 
			
		||||
		/* Let a click on the desktop cancel an active popup grab */
 | 
			
		||||
	if (ctx.type != LAB_SSD_CLIENT && wlr_seat_pointer_has_grab(seat->seat)) {
 | 
			
		||||
		/*
 | 
			
		||||
		 * If we have an active popup grab (an open popup) we want to
 | 
			
		||||
		 * cancel that grab whenever the user presses on anything that
 | 
			
		||||
		 * is not the client itself, for example the desktop or any
 | 
			
		||||
		 * part of the server side decoration.
 | 
			
		||||
		 *
 | 
			
		||||
		 * Note: This does not work for XWayland clients
 | 
			
		||||
		 */
 | 
			
		||||
		wlr_seat_pointer_end_grab(seat->seat);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue