Archived
1
0

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:
Jacob Alexander 2015-10-04 16:19:20 -07:00
parent 8311f1b083
commit 3eece24115
2 changed files with 17 additions and 1 deletions

1
.gitignore vendored
View File

@ -41,6 +41,7 @@
.Trashes .Trashes
ehthumbs.db ehthumbs.db
Thumbs.db Thumbs.db
*.attr
# Editor generated files # # Editor generated files #
########################## ##########################

View File

@ -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