New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Key combinations are no longer recognized and can not be bound in the keybinding dialog anymore, which means inputing a “plus” is not possible without a keypad (Linux, X11/SDL, Neo 2 layout) #13899
Comments
It seems that the issue here is that ISO_Level3_Shift is not detected as a modifier anymore by the code handling the keybindings – so the binding can be set to ISO_Level3_Shift, but not to the plus character. This means that users with Neo2 keyboard layout can no longer input a plus sign at all unless they have a numpad (as Numpad plus is correctly detected). |
Have you tested with USE_SDL2 as well? |
@grorp I have no idea. Please explain in more detail what I should test. |
I meant compiling Minetest with the SDL Irrlicht device ( |
@grorp I can try. But why is that flag not the default for compiling for GNU/Linux then? |
@grorp so I did this:
|
It is supposed to become the default soon.
Looks like your SDL is outdated, that field was added in 2.0.18 according to |
The latest version of SDL2 in Debian oldstable (version 11, bullseye) is 2.0.14, so it's probably a good idea to use that as the minimum supported version of SDL2 and gating anything requring a newer version behind preprocessor directives. |
Even when commenting out the mousewheel code (which seems to be the only code that uses this newer constant), using SDL2 does not seem fix it. I assume the underlying isssue here is that all keys except the escape key can be bound now, i.e. there is no way to input characters anymore. I guess this is bad for anyone who has a non-standard keyboard layout or wants to bind stuff to key combinations? |
I think there exists a bigger conceptual problem here: By changing the detection from “character that is input” to “key that is pressed”, it may have become impossible to bind functionality to key combinations (something that was possible before when characters were input using key combination). Neo2 uses a key combination for the plus sign, therefore this bug occurs. I think this means that it can not be easily mitigated by just using SDL, as it represents a conceptual shift in keymapping. Edit: The plus-sign-related regression reported in #13890 may have the same root cause (but is not the same issue as this ore). |
@erlehmann is your problem fixed if you revert #13773? |
@grorp reverting commit d57c936 does fix it in a way: Key combinations are recognized again (i.e. I can input a “+”), but I can not actually input that as a valid combination in the keybinding dialog because ISO_Level3_Shift is detected as a bindable key (but then again I am not sure if I ever tried that again before and + is already configured by default). |
Fixed by #13942. |
Minetest version
Active renderer
No response
Irrlicht device
X11
Operating system and version
Debian 11.7
CPU model
Intel(R) Core(TM) Duo CPU T2400 @ 1.83GHz
GPU model
Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
OpenGL version
1.4
Summary
Using MInetest on X11 with the Neo2 keyboard layout, Minetest does not recognize me inputting a plus sign by holding ISO_Level3_Shift (the key above the left shift key on a QWERTY or QWERTZ keyboard) and the “b” key for a game action. It still works for text input in chat.
This used to work in earlier versions of Minetest, at least back in 5.4.1 it definitely did work.
Steps to reproduce
Similar bugs
Just to point it out in advance: The following issues are not duplicates of this one.
#12507 - plus key allegedly not working on Mac OS
#13890 - plus is now a different key from numpad plus
The text was updated successfully, but these errors were encountered: