You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Windows 10 - Godot 4.3 - Compatibility - QWERTZ keyboard
Issue description
I am working on an Input remapping system and ran into an issue with the conversion from a dead_key press into a displayable character. "dead_keys" I am talking about are the keys marked red on the QWERTZ layout in the top right and left:
These buttons have a unique behaviour when writing, as when they are pressed, they output nothing and when pressed again, they will output depending on the next pressed button. examples for the QWERTZ layout include:
first_input
text_output
second_input
text_output
note
^
NONE
^
^^
pressing dead character again outputs it twice
^
NONE
e
ê
pressing compatible character second
^
NONE
SPACE_BAR
^
there is no space after the ^
^
NONE
w
^w
non compatible characters
´
NONE
´
´´
pressing dead character again outputs it twice
´
NONE
e
é
pressing compatible character second
´
NONE
SPACE_BAR
´
there is no space after the ´
´
NONE
w
´w
non compatible characters
the issue
when trying to output the label of the button with OS.get_keycode_string(event.get_key_label_with_modifiers()) the output changes for dead_keys on the second_input and to a diffrent symbol that is not printed on the key.
Steps to reproduce
create a new scene with a control node and use the _input() function:
When pressing the ^ key repeatedly it outputs the following (first_input outputs AsciiCircum and second_input triggers input function twice with BackSlash as output):
why is the input function triggered twice for the second input?
why does it output BackSlash on the second input when there is no backslash on the ^ key
Meanwhile when holding down Ctrl and/or Shift and pressing the ^ key repeateadly produces the following results (not triggering the input function twice and always outputting mods+BackSlash):
Also holding down Alt and pressing ^ key repeateadly will not trigger the input function twice (but now alternating between Alt+AsciiCircum and Alt+BackSlash):
small nitpick: why is the output Alt+Ctrl and not Ctrl+Alt (Ctrl at the beginning) for the OS.get_keycode_string(event.get_key_label_with_modifiers()) function as thats the way we say it in speech? same for Shift+Ctrl and Shift+Alt+Ctrl ?
output for the ´ key
for the ´ button something similar occurs when pressed repeatadly with alternations between ´ and BracketRight (second input triggers twice):
note: its just ´ as output, not QuoteRight because only QuoteLeft is valid on a US-keyboard layout.
When holding Ctrl and pressing ´ button it always outputs BracketRight:
Ctrl+BracketRight
Ctrl+BracketRight
for the rest ´ seems to behave similar with ^ as the output differs (in regards to BackSlash has become BracketRight and is also not found on the ´ key), but triggers are identical
The text was updated successfully, but these errors were encountered:
gitsomebit
changed the title
"dead_key" button is not correctly converted to label and triggeres twice on second click (QWERTZ keyboard)
"dead_key" button is not correctly converted to label and triggeres twice on second press(QWERTZ keyboard)
Nov 6, 2024
gitsomebit
changed the title
"dead_key" button is not correctly converted to label and triggeres twice on second press(QWERTZ keyboard)
"dead_key" button is not correctly converted to label and triggeres twice on second press (QWERTZ keyboard)
Nov 6, 2024
Tested versions
System information
Windows 10 - Godot 4.3 - Compatibility - QWERTZ keyboard
Issue description
I am working on an Input remapping system and ran into an issue with the conversion from a dead_key press into a displayable character. "dead_keys" I am talking about are the keys marked red on the QWERTZ layout in the top right and left:
These buttons have a unique behaviour when writing, as when they are pressed, they output nothing and when pressed again, they will output depending on the next pressed button. examples for the QWERTZ layout include:
the issue
when trying to output the label of the button with
OS.get_keycode_string(event.get_key_label_with_modifiers())
the output changes for dead_keys on the second_input and to a diffrent symbol that is not printed on the key.Steps to reproduce
create a new scene with a control node and use the _input() function:
output for the
^
keyWhen pressing the ^ key repeatedly it outputs the following (first_input outputs AsciiCircum and second_input triggers input function twice with BackSlash as output):
I find this strange for two reasons:
Meanwhile when holding down Ctrl and/or Shift and pressing the ^ key repeateadly produces the following results (not triggering the input function twice and always outputting
mods
+BackSlash):Also holding down Alt and pressing ^ key repeateadly will not trigger the input function twice (but now alternating between Alt+AsciiCircum and Alt+BackSlash):
Holding Ctrl and Alt and pressing ^ key repeateadly always produces BackSlash:
small nitpick: why is the output Alt+Ctrl and not Ctrl+Alt (Ctrl at the beginning) for the
OS.get_keycode_string(event.get_key_label_with_modifiers())
function as thats the way we say it in speech? same for Shift+Ctrl and Shift+Alt+Ctrl ?output for the
´
keyfor the ´ button something similar occurs when pressed repeatadly with alternations between ´ and BracketRight (second input triggers twice):
note: its just
´
as output, notQuoteRight
because onlyQuoteLeft
is valid on a US-keyboard layout.When holding Ctrl and pressing ´ button it always outputs BracketRight:
for the rest
´
seems to behave similar with^
as the output differs (in regards to BackSlash has become BracketRight and is also not found on the´
key), but triggers are identicalMinimal reproduction project (MRP)
MRP: dead_key_bug.zip
The text was updated successfully, but these errors were encountered: