Skip to content

Fix that vsgimgui changes keyBase to keyModified in keyboard's events#75

Open
ArepMM wants to merge 1 commit intovsg-dev:masterfrom
ArepMM:fix-keyboardevent-keybase
Open

Fix that vsgimgui changes keyBase to keyModified in keyboard's events#75
ArepMM wants to merge 1 commit intovsg-dev:masterfrom
ArepMM:fix-keyboardevent-keybase

Conversation

@ArepMM
Copy link

@ArepMM ArepMM commented Jun 9, 2025

vsgImGui/src/vsgImGui/SendEventsToImGui.cpp contains follow code, which change keyBase value of keyboard's events.

In apply(vsg::KeyPressEvent& keyPress):
...
if (keyPress.keyModified >= vsg::KEY_KP_0 && keyPress.keyModified <= vsg::KEY_KP_9) keyPress.keyBase = keyPress.keyModified;
...

and the same in SendEventsToImGui::apply(vsg::KeyReleaseEvent& keyRelease):
...
if (keyRelease.keyModified >= vsg::KEY_KP_0 && keyRelease.keyModified <= vsg::KEY_KP_9) keyRelease.keyBase = keyRelease.keyModified;
...

In Windows with cyrilic keyboard layout we found a problem: when we press shift + 3, it is symbol "№" and keyModified for it is 0xFFB9. It is the same as value of vsg::KEY_KP_9. So this code is run and we get keyBase = vsg::KEY_KP_9 instead of keyBase = vsg::KEY_3 for all event handlers after vsgImGui. I fix the problem with simple rewriting, which save keyBase changeless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant