mirror of
				https://github.com/swaywm/sway.git
				synced 2025-10-29 05:40:18 -04:00 
			
		
		
		
	Flesh out fullscreen support a bit
This commit is contained in:
		
							parent
							
								
									b922e1cb29
								
							
						
					
					
						commit
						0078a6fa36
					
				
					 2 changed files with 17 additions and 27 deletions
				
			
		|  | @ -224,7 +224,8 @@ int cmd_fullscreen(struct sway_config *config, int argc, char **argv) { | |||
| 	} | ||||
| 
 | ||||
| 	swayc_t *container = get_focused_container(&root_container); | ||||
| 	wlc_view_set_state(container->handle, WLC_BIT_FULLSCREEN, true); | ||||
| 	bool current = (wlc_view_get_state(container->handle) & WLC_BIT_FULLSCREEN) > 0; | ||||
| 	wlc_view_set_state(container->handle, WLC_BIT_FULLSCREEN, !current); | ||||
| 	arrange_windows(container, -1, -1); | ||||
| 
 | ||||
| 	return 1; | ||||
|  |  | |||
|  | @ -41,29 +41,6 @@ void arrange_windows(swayc_t *container, int width, int height) { | |||
| 		} | ||||
| 		return; | ||||
| 	case C_VIEW: | ||||
| 		// If the view is fullscreen, we need to tell wlc to draw it as such
 | ||||
| 		if (wlc_view_get_state(container->handle) & WLC_BIT_FULLSCREEN) { | ||||
| 			swayc_t *parent = container; | ||||
| 			do { | ||||
| 				parent = parent->parent; | ||||
| 			} while(parent->type != C_OUTPUT); | ||||
| 
 | ||||
| 			sway_log(L_DEBUG, "res %d %d", parent->width, parent->height); | ||||
| 			struct wlc_geometry geometry = { | ||||
| 				.origin = { | ||||
| 					.x = 0, | ||||
| 					.y = 0 | ||||
| 				}, | ||||
| 				.size = { | ||||
| 					.w = parent->width, | ||||
| 					.h = parent->height | ||||
| 				} | ||||
| 			}; | ||||
| 
 | ||||
| 			wlc_view_set_geometry(container->handle, &geometry); | ||||
| 			return; | ||||
| 		} | ||||
| 
 | ||||
| 		sway_log(L_DEBUG, "Setting view to %d x %d @ %d, %d", width, height, container->x, container->y); | ||||
| 		struct wlc_geometry geometry = { | ||||
| 			.origin = { | ||||
|  | @ -75,9 +52,21 @@ void arrange_windows(swayc_t *container, int width, int height) { | |||
| 				.h = height | ||||
| 			} | ||||
| 		}; | ||||
| 		if (wlc_view_get_state(container->handle) & WLC_BIT_FULLSCREEN) { | ||||
| 			swayc_t *parent = container; | ||||
| 			while(parent->type != C_OUTPUT) { | ||||
| 				parent = parent->parent; | ||||
| 			} | ||||
| 			geometry.origin.x = 0; | ||||
| 			geometry.origin.y = 0; | ||||
| 			geometry.size.w = parent->width; | ||||
| 			geometry.size.h = parent->height; | ||||
| 			wlc_view_set_geometry(container->handle, &geometry); | ||||
| 		} else { | ||||
| 			wlc_view_set_geometry(container->handle, &geometry); | ||||
| 			container->width = width; | ||||
| 			container->height = height; | ||||
| 		} | ||||
| 		return; | ||||
| 	default: | ||||
| 		container->width = width; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Drew DeVault
						Drew DeVault