Using double OSM via macro makes them sticky

Hello. Based on the OneShot.inject example I have the following code in my sketch:

    case MACRO_OSM_LEVEL4:
        if (keyToggledOn(keyState))
            OneShot.inject(OSM(RightAlt), keyState);
            OneShot.inject(OSM(LeftShift), keyState);

On my Kubuntu system RightAlt + Shift selects the fourth shift level of my a key in the active XKB keyboard layout. So I have made a level 4 key that activates them together.

However triggering this macro once causes the two modifiers to go into sticky mode which is not what is desired. Tapping the level 3 and shift modifiers in sequence doesn’t go into sticky mode.

@algernon or someone please advise!

It is desirable that my virtual Level4 key works like any other OSM key: single tap for one time behaviour and double tap for sticky with third tap for release, but I’m not sure if this is possible within the current framework…

Are you on the latest git master version of OneShot?

Yes I’m on:

b683383 (HEAD) Override onSetup when using a compatibility layer

Try updating, there’s 701e79d3dc136050a629d83328101e7698c591c6 after that, which might fix this issue for you.

Now on

701e79d (HEAD -> master, origin/master, origin/HEAD) Clear should_cancel_ when canceling stickiness with a third tap

but no joy. Still sticky…

Can you open a GitHub issue about this? I don’t have time to debug it right now, but I can assign the GitHub issue to myself, and I’ll remember to have a look at it the next time I have some keyboard-time.

Out of curiosity - did it work before?

No ever since I configured this it is behaving stickily… Thanks! :bouquet::bouquet::bouquet: