mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	xdg-shell: set fallback geometry if width/height == 0 on unmaximize
This commit is contained in:
		
							parent
							
								
									a1cf5b3e96
								
							
						
					
					
						commit
						bacabdc4a1
					
				
					 1 changed files with 24 additions and 0 deletions
				
			
		
							
								
								
									
										24
									
								
								src/view.c
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								src/view.c
									
										
									
									
									
								
							| 
						 | 
					@ -215,9 +215,33 @@ view_apply_maximized_geometry(struct view *view)
 | 
				
			||||||
	view_move_resize(view, box);
 | 
						view_move_resize(view, box);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LAB_FALLBACK_WIDTH (640)
 | 
				
			||||||
 | 
					#define LAB_FALLBACK_HEIGHT (480)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void
 | 
				
			||||||
 | 
					set_fallback_geometry(struct view *view)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						view->unmaximized_geometry.width = LAB_FALLBACK_WIDTH;
 | 
				
			||||||
 | 
						view->unmaximized_geometry.height = LAB_FALLBACK_HEIGHT;
 | 
				
			||||||
 | 
						view_compute_centered_position(view,
 | 
				
			||||||
 | 
							view->unmaximized_geometry.width,
 | 
				
			||||||
 | 
							view->unmaximized_geometry.height,
 | 
				
			||||||
 | 
							&view->unmaximized_geometry.x,
 | 
				
			||||||
 | 
							&view->unmaximized_geometry.y);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
view_apply_unmaximized_geometry(struct view *view)
 | 
					view_apply_unmaximized_geometry(struct view *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * If an application was started maximized, its unmaximized_geometry
 | 
				
			||||||
 | 
						 * width/height may still be zero in which case we set some fallback
 | 
				
			||||||
 | 
						 * values. This is the case with foot and Qt applications.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						if (wlr_box_empty(&view->unmaximized_geometry)) {
 | 
				
			||||||
 | 
							set_fallback_geometry(view);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct wlr_output_layout *layout = view->server->output_layout;
 | 
						struct wlr_output_layout *layout = view->server->output_layout;
 | 
				
			||||||
	if (wlr_output_layout_intersects(layout, NULL,
 | 
						if (wlr_output_layout_intersects(layout, NULL,
 | 
				
			||||||
			&view->unmaximized_geometry)) {
 | 
								&view->unmaximized_geometry)) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue