mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	src/osd.c: Integrate preview outline into OSD state
This commit is contained in:
		
							parent
							
								
									15a5b710db
								
							
						
					
					
						commit
						ca3c83aafc
					
				
					 2 changed files with 6 additions and 7 deletions
				
			
		| 
						 | 
					@ -202,8 +202,6 @@ struct server {
 | 
				
			||||||
	/* Tree for built in menu */
 | 
						/* Tree for built in menu */
 | 
				
			||||||
	struct wlr_scene_tree *menu_tree;
 | 
						struct wlr_scene_tree *menu_tree;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct multi_rect *osd_preview_outline;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Workspaces */
 | 
						/* Workspaces */
 | 
				
			||||||
	struct wl_list workspaces;  /* struct workspace.link */
 | 
						struct wl_list workspaces;  /* struct workspace.link */
 | 
				
			||||||
	struct workspace *workspace_current;
 | 
						struct workspace *workspace_current;
 | 
				
			||||||
| 
						 | 
					@ -236,6 +234,7 @@ struct server {
 | 
				
			||||||
		bool preview_was_enabled;
 | 
							bool preview_was_enabled;
 | 
				
			||||||
		struct wlr_scene_node *preview_node;
 | 
							struct wlr_scene_node *preview_node;
 | 
				
			||||||
		struct wlr_scene_node *preview_anchor;
 | 
							struct wlr_scene_node *preview_anchor;
 | 
				
			||||||
 | 
							struct multi_rect *preview_outline;
 | 
				
			||||||
	} osd_state;
 | 
						} osd_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct theme *theme;
 | 
						struct theme *theme;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								src/osd.c
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/osd.c
									
										
									
									
									
								
							| 
						 | 
					@ -90,7 +90,7 @@ osd_update_preview_outlines(struct view *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* Create / Update preview outline tree */
 | 
						/* Create / Update preview outline tree */
 | 
				
			||||||
	struct server *server = view->server;
 | 
						struct server *server = view->server;
 | 
				
			||||||
	struct multi_rect *rect = view->server->osd_preview_outline;
 | 
						struct multi_rect *rect = view->server->osd_state.preview_outline;
 | 
				
			||||||
	if (!rect) {
 | 
						if (!rect) {
 | 
				
			||||||
		int line_width = server->theme->osd_border_width;
 | 
							int line_width = server->theme->osd_border_width;
 | 
				
			||||||
		float *colors[] = {
 | 
							float *colors[] = {
 | 
				
			||||||
| 
						 | 
					@ -100,7 +100,7 @@ osd_update_preview_outlines(struct view *view)
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		rect = multi_rect_create(&server->scene->tree, colors, line_width);
 | 
							rect = multi_rect_create(&server->scene->tree, colors, line_width);
 | 
				
			||||||
		wlr_scene_node_place_above(&rect->tree->node, &server->menu_tree->node);
 | 
							wlr_scene_node_place_above(&rect->tree->node, &server->menu_tree->node);
 | 
				
			||||||
		server->osd_preview_outline = rect;
 | 
							server->osd_state.preview_outline = rect;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct wlr_box geo = ssd_max_extents(view);
 | 
						struct wlr_box geo = ssd_max_extents(view);
 | 
				
			||||||
| 
						 | 
					@ -120,10 +120,10 @@ osd_finish(struct server *server)
 | 
				
			||||||
		destroy_osd_nodes(output);
 | 
							destroy_osd_nodes(output);
 | 
				
			||||||
		wlr_scene_node_set_enabled(&output->osd_tree->node, false);
 | 
							wlr_scene_node_set_enabled(&output->osd_tree->node, false);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (server->osd_preview_outline) {
 | 
						if (server->osd_state.preview_outline) {
 | 
				
			||||||
		/* Destroy the whole multi_rect so we can easily react to new themes */
 | 
							/* Destroy the whole multi_rect so we can easily react to new themes */
 | 
				
			||||||
		wlr_scene_node_destroy(&server->osd_preview_outline->tree->node);
 | 
							wlr_scene_node_destroy(&server->osd_state.preview_outline->tree->node);
 | 
				
			||||||
		server->osd_preview_outline = NULL;
 | 
							server->osd_state.preview_outline = NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue