On Windows 11, under Bitwig Studio using VST3. Built the plugin. Keyboard input didn't work.
Using a UK English keyboard layout (but it is also broken with Korean and US English key inputs).
So I investigate:
Added a little test on the ImGuiWidget's onKeyboard(..):
template <class BaseWidget>
bool ImGuiWidget<BaseWidget>::onKeyboard(const Widget::KeyboardEvent& event)
{
if (event.press)
d_stdout("onKeyboard %u %u %u", event.key, event.mod, event.keycode);
// et cetera ...
typing 'abcdefg' gives the following in engine.log:
onKeyboard 0 0 65
onKeyboard 0 0 66
onKeyboard 0 0 67
onKeyboard 0 0 68
onKeyboard 0 0 69
onKeyboard 0 0 70
onKeyboard 0 0 71
Looks like maybe a pugl issue? I'm really not sure. The keycode is correctly reported at least, so I can assume US keyboard layout for now and just assign event.key based on the keycode & modifiers.
Here's the bitwig engine.log for '1234567890' which is really weird:
onKeyboard 57353 0 49
onKeyboard 57354 0 50
onKeyboard 57355 0 51
onKeyboard 57413 0 52
onKeyboard 57414 0 53
onKeyboard 57425 0 54
onKeyboard 57427 0 55
onKeyboard 57429 0 56
onKeyboard 61 0 57
onKeyboard 57352 0 48
the reported event.key values are in the Unicode private use area range? '1' becomes U+E009. And '9' becomes U+003D ("=" It even types an equals sign in the text field!!)

Any insight would be appreciated, but for now I'm just going to fill in event.key based on event.keycode :)
On Windows 11, under Bitwig Studio using VST3. Built the plugin. Keyboard input didn't work.
Using a UK English keyboard layout (but it is also broken with Korean and US English key inputs).
So I investigate:
Added a little test on the ImGuiWidget's onKeyboard(..):
typing 'abcdefg' gives the following in
engine.log:Looks like maybe a pugl issue? I'm really not sure. The keycode is correctly reported at least, so I can assume US keyboard layout for now and just assign
event.keybased on the keycode & modifiers.Here's the bitwig
engine.logfor '1234567890' which is really weird:the reported
event.keyvalues are in the Unicode private use area range? '1' becomesU+E009. And '9' becomes U+003D ("=" It even types an equals sign in the text field!!)Any insight would be appreciated, but for now I'm just going to fill in
event.keybased onevent.keycode:)