The easiest way I've found to reproduce this is by:
Pressing Vol Down
Pressing Vol Up
Releasing Vol Down
If done properly, releasing Vol Up will result in a break code for F3 being generated. This can also be accomplished with some combination of Fn and the arrow/page keys.
It appears that the state-tracking variables keep_fn_* aren't transitioning through their state graph correctly.
The easiest way I've found to reproduce this is by:
If done properly, releasing Vol Up will result in a break code for F3 being generated. This can also be accomplished with some combination of Fn and the arrow/page keys.
It appears that the state-tracking variables
keep_fn_*
aren't transitioning through their state graph correctly.https://github.com/FrameworkComputer/EmbeddedController/blob/8109392adb17a2cd7d30a74eee8613a0cb72ee7d/board/hx20/keyboard_customization.c#L238-L240
hotkey_F1_F12(&0x0006, 0, 1)
keep_fn_key_F1F12
==1
Set to 1 because the key was pressed
hotkey_F1_F12(&0x0004, 0, 1)
keep_fn_key_F1F12
==1
Set to 1 because the key was pressed
hotkey_F1_F12(&0x0006, 0, 0)
keep_fn_key_F1F12
==0
Cleared because the key was released
hotkey_F1_F12(&0x0004, 0, 0)
keep_fn_key_F1F12
==0
We exit early (see code below) because this is
0
https://github.com/FrameworkComputer/EmbeddedController/blob/8109392adb17a2cd7d30a74eee8613a0cb72ee7d/board/hx20/keyboard_customization.c#L296-L297