CraterCrash / godot-orchestrator

Orchestrator: Unleashing Creativity with Visual Scripting
https://www.cratercrash.com/orchestrator
Apache License 2.0
931 stars 48 forks source link

German Keyboard Layout: `Ctrl+/` (Slash) does not toggle Component Panels #735

Open dschiller opened 1 month ago

dschiller commented 1 month ago

Describe the bug

Using german Keyboard layout does not toggle the Componet Panels. With english Keyboard Layout it works. The slash (/) on the german Keyboard needs Shift+7, in combination with Ctrl that then will be Ctrl+Shift+7.

Expected behavior

No matter which Keyboard layout is used the Keyboard shortcut should work.

Actual behavior

With german Keyboard layout the shortcut Ctrl+/ can not be executed.

How to Reproduce?

  1. Open Godot
  2. Create new Orchestrator EventGraph
  3. Use german Keyboard layout
  4. Press Ctrl+Shift+7 (Ctrl+/) >> Component Panels do not toggle

Godot full version

4.3.rc3

Orchestrator version

2.1.rc4

Additional information

No response

Naros commented 1 month ago

So with PopupMenu items, all we do is bind the key mapping to the item, in this case, KEY_MASK_CTRL | KEY_SLASH. We then rely solely on Godot to call the popup menu handler when that key mapping is triggered. If that does not happen on German locale-based keyboard configurations, then this sounds more like a Godot editor limitation.

I've reached out to the devs to see what details they can share if there is something special we need to do in our code.

Naros commented 1 month ago

So according to the Godot devs, since we bind KEY_MASK_CTRL | KEY_SLASH as the accelerator but German keyboards don't have the SLASH key, then the accelerator since won't work & won't fire. This is expected behavior.

This just underscores the need for Godot to allow GDExtension developers to define shortcut definitions and to let users customize those within the Editor Settings :(