mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	add default permissions
This commit is contained in:
		
							parent
							
								
									089a362d73
								
							
						
					
					
						commit
						0f112b7463
					
				
					 3 changed files with 6 additions and 1 deletions
				
			
		| 
						 | 
					@ -71,6 +71,7 @@ struct rcxml {
 | 
				
			||||||
	enum tearing_mode allow_tearing;
 | 
						enum tearing_mode allow_tearing;
 | 
				
			||||||
	bool auto_enable_outputs;
 | 
						bool auto_enable_outputs;
 | 
				
			||||||
	bool reuse_output_mode;
 | 
						bool reuse_output_mode;
 | 
				
			||||||
 | 
						uint32_t default_permissions;
 | 
				
			||||||
	bool xwayland_persistence;
 | 
						bool xwayland_persistence;
 | 
				
			||||||
	bool primary_selection;
 | 
						bool primary_selection;
 | 
				
			||||||
	char *prompt_command;
 | 
						char *prompt_command;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
#include "config/touch.h"
 | 
					#include "config/touch.h"
 | 
				
			||||||
#include "labwc.h"
 | 
					#include "labwc.h"
 | 
				
			||||||
#include "osd.h"
 | 
					#include "osd.h"
 | 
				
			||||||
 | 
					#include "permissions.h"
 | 
				
			||||||
#include "regions.h"
 | 
					#include "regions.h"
 | 
				
			||||||
#include "ssd.h"
 | 
					#include "ssd.h"
 | 
				
			||||||
#include "translate.h"
 | 
					#include "translate.h"
 | 
				
			||||||
| 
						 | 
					@ -1095,6 +1096,8 @@ entry(xmlNode *node, char *nodename, char *content)
 | 
				
			||||||
		set_bool(content, &rc.auto_enable_outputs);
 | 
							set_bool(content, &rc.auto_enable_outputs);
 | 
				
			||||||
	} else if (!strcasecmp(nodename, "reuseOutputMode.core")) {
 | 
						} else if (!strcasecmp(nodename, "reuseOutputMode.core")) {
 | 
				
			||||||
		set_bool(content, &rc.reuse_output_mode);
 | 
							set_bool(content, &rc.reuse_output_mode);
 | 
				
			||||||
 | 
						} else if (!strcasecmp(nodename, "permission.core")) {
 | 
				
			||||||
 | 
							rc.default_permissions |= permissions_from_interface_name(content);
 | 
				
			||||||
	} else if (!strcasecmp(nodename, "xwaylandPersistence.core")) {
 | 
						} else if (!strcasecmp(nodename, "xwaylandPersistence.core")) {
 | 
				
			||||||
		set_bool(content, &rc.xwayland_persistence);
 | 
							set_bool(content, &rc.xwayland_persistence);
 | 
				
			||||||
	} else if (!strcasecmp(nodename, "primarySelection.core")) {
 | 
						} else if (!strcasecmp(nodename, "primarySelection.core")) {
 | 
				
			||||||
| 
						 | 
					@ -1390,6 +1393,7 @@ rcxml_init(void)
 | 
				
			||||||
	rc.allow_tearing = LAB_TEARING_DISABLED;
 | 
						rc.allow_tearing = LAB_TEARING_DISABLED;
 | 
				
			||||||
	rc.auto_enable_outputs = true;
 | 
						rc.auto_enable_outputs = true;
 | 
				
			||||||
	rc.reuse_output_mode = false;
 | 
						rc.reuse_output_mode = false;
 | 
				
			||||||
 | 
						rc.default_permissions = 0;
 | 
				
			||||||
	rc.xwayland_persistence = false;
 | 
						rc.xwayland_persistence = false;
 | 
				
			||||||
	rc.primary_selection = true;
 | 
						rc.primary_selection = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -133,7 +133,7 @@ permissions_context_create(struct wl_display *display, uint32_t permissions)
 | 
				
			||||||
bool
 | 
					bool
 | 
				
			||||||
permissions_check(const struct wl_client *client, const struct wl_interface *iface)
 | 
					permissions_check(const struct wl_client *client, const struct wl_interface *iface)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	uint32_t permissions = permissions_get(client);
 | 
						uint32_t permissions = permissions_get(client) | rc.default_permissions;
 | 
				
			||||||
	uint32_t required = permissions_from_interface_name(iface->name);
 | 
						uint32_t required = permissions_from_interface_name(iface->name);
 | 
				
			||||||
	return (permissions & required) == required;
 | 
						return (permissions & required) == required;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue