You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I figured out a better way to verify if next keys pressed should be ignored.
Add an event trace identifier to events. The first event is always a position state changed event. Each time one of those events is created, add a unique version number to it, the event trace id.
Every time a next event is raised from this source event (behaviors should be events too) the event trace id is copied into it.
By doing this it's trivial to filter out events caused by the same source without comparing positions, layers, timestamps or other imperfect identifiers which may not be available everywhere
Sticky keys also make another issue clear; lifetime of behavior pointers and events is not well defined.
Instead we should use a method similar to how events are freed; the event handler returns whether the event is captured or if it should be freed by the event caller.
some small things to fix based on #284
_TRANSFORM_ENTRY
into a header file#if DT_NODE_EXISTS(DT_DRV_INST(0))
should be#if DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT)
(this should be fixed in multiple behaviors)timer_is_cancelled
is true, and settimer_is_cancelled
to false in the timer handler (noticed while debugging Sticky key in a sticky layer issues, wrong output on the 2nd consecutive sticky key, then sticky key is ignored. #445)The text was updated successfully, but these errors were encountered: