mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	In addition to `button_count`, we keep track of the current buttons pressed just as in `wlr_keyboard`. Add `set_add` and `set_remove` to assist with this. These functions can only be used with values greater than 0 (such as the button/key masks for keyboards and pointers). Partially addresses: - https://github.com/swaywm/wlroots/issues/1716 - https://github.com/swaywm/wlroots/issues/1593
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			607 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			607 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef UTIL_ARRAY_H
 | 
						|
#define UTIL_ARRAY_H
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <stdbool.h>
 | 
						|
 | 
						|
size_t push_zeroes_to_end(uint32_t arr[], size_t n);
 | 
						|
 | 
						|
/**
 | 
						|
 * Add `target` to `values` if it doesn't exist
 | 
						|
 * "set"s should only be modified with set_* functions
 | 
						|
 * Values MUST be greater than 0
 | 
						|
 */
 | 
						|
bool set_add(uint32_t values[], size_t *len, size_t cap, uint32_t target);
 | 
						|
 | 
						|
/**
 | 
						|
 * Remove `target` from `values` if it exists
 | 
						|
 * "set"s should only be modified with set_* functions
 | 
						|
 * Values MUST be greater than 0
 | 
						|
 */
 | 
						|
bool set_remove(uint32_t values[], size_t *len, size_t cap, uint32_t target);
 | 
						|
 | 
						|
#endif
 |