Fix Latching bug (introduced when fixing shift and lock recently)
- Also conditionally refresh the lcd screen if enabled /w interconnect (Not the ideal way to update, but the only way with the current KLL version)
This commit is contained in:
		
							parent
							
								
									8311f1b083
								
							
						
					
					
						commit
						3eece24115
					
				
					 2 changed files with 17 additions and 1 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -41,6 +41,7 @@ | |||
| .Trashes | ||||
| ehthumbs.db | ||||
| Thumbs.db | ||||
| *.attr | ||||
| 
 | ||||
| # Editor generated files # | ||||
| ########################## | ||||
|  |  | |||
|  | @ -422,7 +422,22 @@ nat_ptr_t *Macro_layerLookup( TriggerGuide *guide, uint8_t latch_expire ) | |||
| 		nat_ptr_t **map = (nat_ptr_t**)LayerIndex[ cachedLayer ].triggerMap; | ||||
| 		const Layer *layer = &LayerIndex[ cachedLayer ]; | ||||
| 
 | ||||
| 		return map[ scanCode - layer->first ]; | ||||
| 		// Cache trigger list before attempting to expire latch
 | ||||
| 		nat_ptr_t *trigger_list = map[ scanCode - layer->first ]; | ||||
| 
 | ||||
| 		// Check if latch has been pressed for this layer
 | ||||
| 		uint8_t latch = LayerState[ cachedLayer ] & 0x02; | ||||
| 		if ( latch && latch_expire ) | ||||
| 		{ | ||||
| 			Macro_layerState( 0, 0, cachedLayer, 0x02 ); | ||||
| #if defined(ConnectEnabled_define) && defined(LCDEnabled_define) | ||||
| 			// Evaluate the layerStack capability if available (LCD + Interconnect)
 | ||||
| 			extern void LCD_layerStack_capability( uint8_t state, uint8_t stateType, uint8_t *args ); | ||||
| 			LCD_layerStack_capability( 0, 0, 0 ); | ||||
| #endif | ||||
| 		} | ||||
| 
 | ||||
| 		return trigger_list; | ||||
| 	} | ||||
| 
 | ||||
| 	// If no trigger macro is defined at the given layer, fallthrough to the next layer
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jacob Alexander
						Jacob Alexander