mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	src/config/rcxml.c: move region validation into the validate() hook
This commit is contained in:
		
							parent
							
								
									2df13933ca
								
							
						
					
					
						commit
						dbad5fc483
					
				
					 1 changed files with 20 additions and 19 deletions
				
			
		| 
						 | 
				
			
			@ -1014,24 +1014,6 @@ post_processing(void)
 | 
			
		|||
	if (rc.workspace_config.popuptime == INT_MIN) {
 | 
			
		||||
		rc.workspace_config.popuptime = 1000;
 | 
			
		||||
	}
 | 
			
		||||
	struct region *region, *region_tmp;
 | 
			
		||||
	wl_list_for_each_safe(region, region_tmp, &rc.regions, link) {
 | 
			
		||||
		struct wlr_box box = region->percentage;
 | 
			
		||||
		bool invalid = !region->name
 | 
			
		||||
			|| box.x < 0 || box.x > 100
 | 
			
		||||
			|| box.y < 0 || box.y > 100
 | 
			
		||||
			|| box.width <= 0 || box.width > 100
 | 
			
		||||
			|| box.height <= 0 || box.height > 100;
 | 
			
		||||
		if (invalid) {
 | 
			
		||||
			wlr_log(WLR_ERROR,
 | 
			
		||||
				"Removing invalid region '%s': %d%% x %d%% @ %d%%,%d%%",
 | 
			
		||||
				region->name, box.width, box.height, box.x, box.y);
 | 
			
		||||
			wl_list_remove(®ion->link);
 | 
			
		||||
			zfree(region->name);
 | 
			
		||||
			free(region);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!wl_list_length(&rc.window_switcher.fields)) {
 | 
			
		||||
		wlr_log(WLR_INFO, "load default window switcher fields");
 | 
			
		||||
		load_default_window_switcher_fields();
 | 
			
		||||
| 
						 | 
				
			
			@ -1051,11 +1033,30 @@ rule_destroy(struct window_rule *rule)
 | 
			
		|||
static void
 | 
			
		||||
validate(void)
 | 
			
		||||
{
 | 
			
		||||
	/* Regions */
 | 
			
		||||
	struct region *region, *region_tmp;
 | 
			
		||||
	wl_list_for_each_safe(region, region_tmp, &rc.regions, link) {
 | 
			
		||||
		struct wlr_box box = region->percentage;
 | 
			
		||||
		bool invalid = !region->name
 | 
			
		||||
			|| box.x < 0 || box.x > 100
 | 
			
		||||
			|| box.y < 0 || box.y > 100
 | 
			
		||||
			|| box.width <= 0 || box.width > 100
 | 
			
		||||
			|| box.height <= 0 || box.height > 100;
 | 
			
		||||
		if (invalid) {
 | 
			
		||||
			wlr_log(WLR_ERROR,
 | 
			
		||||
				"Removing invalid region '%s': %d%% x %d%% @ %d%%,%d%%",
 | 
			
		||||
				region->name, box.width, box.height, box.x, box.y);
 | 
			
		||||
			wl_list_remove(®ion->link);
 | 
			
		||||
			zfree(region->name);
 | 
			
		||||
			free(region);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Window-rule criteria */
 | 
			
		||||
	struct window_rule *rule, *next;
 | 
			
		||||
	wl_list_for_each_safe(rule, next, &rc.window_rules, link) {
 | 
			
		||||
		if (!rule->identifier && !rule->title) {
 | 
			
		||||
			wlr_log(WLR_ERROR, "deleting rule %p as no criteria", rule);
 | 
			
		||||
			wlr_log(WLR_ERROR, "Deleting rule %p as it has no criteria", rule);
 | 
			
		||||
			rule_destroy(rule);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue