gg: allow easily detecting the edges of key_down keyboard events
							parent
							
								
									b173e55be5
								
							
						
					
					
						commit
						79c7aed3c2
					
				
							
								
								
									
										13
									
								
								vlib/gg/gg.v
								
								
								
								
							
							
						
						
									
										13
									
								
								vlib/gg/gg.v
								
								
								
								
							|  | @ -144,9 +144,11 @@ pub mut: | ||||||
| 	scroll_x      int | 	scroll_x      int | ||||||
| 	scroll_y      int | 	scroll_y      int | ||||||
| 	//
 | 	//
 | ||||||
| 	key_modifiers Modifier | 	key_modifiers     Modifier // the current key modifiers
 | ||||||
| 	key_repeat    bool | 	key_repeat        bool     // whether the pressed key was an autorepeated one
 | ||||||
| 	pressed_keys  [key_code_max]bool | 	pressed_keys      [key_code_max]bool // an array representing all currently pressed keys
 | ||||||
|  | 	pressed_keys_edge [key_code_max]bool // true when the previous state of pressed_keys,
 | ||||||
|  | 	// *before* the current event was different
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub struct Size { | pub struct Size { | ||||||
|  | @ -311,7 +313,10 @@ fn gg_event_fn(ce &C.sapp_event, user_data voidptr) { | ||||||
| 	g.key_repeat = e.key_repeat | 	g.key_repeat = e.key_repeat | ||||||
| 	if e.typ in [.key_down, .key_up] { | 	if e.typ in [.key_down, .key_up] { | ||||||
| 		key_idx := int(e.key_code) % key_code_max | 		key_idx := int(e.key_code) % key_code_max | ||||||
| 		g.pressed_keys[key_idx] = e.typ == .key_down | 		prev := g.pressed_keys[key_idx] | ||||||
|  | 		next := e.typ == .key_down | ||||||
|  | 		g.pressed_keys[key_idx] = next | ||||||
|  | 		g.pressed_keys_edge[key_idx] = prev != next | ||||||
| 	} | 	} | ||||||
| 	if g.config.event_fn != voidptr(0) { | 	if g.config.event_fn != voidptr(0) { | ||||||
| 		g.config.event_fn(e, g.config.user_data) | 		g.config.event_fn(e, g.config.user_data) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue