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
1
.gitignore
vendored
1
.gitignore
vendored
@ -41,6 +41,7 @@
|
|||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
*.attr
|
||||||
|
|
||||||
# Editor generated files #
|
# 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;
|
nat_ptr_t **map = (nat_ptr_t**)LayerIndex[ cachedLayer ].triggerMap;
|
||||||
const Layer *layer = &LayerIndex[ cachedLayer ];
|
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
|
// If no trigger macro is defined at the given layer, fallthrough to the next layer
|
||||||
|
Reference in New Issue
Block a user