mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Use a set to track pointer button state.
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
This commit is contained in:
		
							parent
							
								
									b85f0cbff9
								
							
						
					
					
						commit
						06a13203dd
					
				
					 5 changed files with 75 additions and 31 deletions
				
			
		| 
						 | 
				
			
			@ -3,7 +3,22 @@
 | 
			
		|||
 | 
			
		||||
#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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue