UI Shortcut not working with left trigger specifically, bug?

Godot Version

V4.4.1

Question

Hello Everyone!

I’m having trouble getting left trigger to work with UI Shortcuts specifically.

So the strange thing is once I setup the shortcut the keyboard bind worked fine but the controller didn’t. I’m using an XBOX style controller. At first I thought it was something wrong with the controller but then I added left bumper (L1) and it works as expected. So then I thought I configured something wrong in the Input Map. Left trigger is an axis so maybe there is a checkbox or a setting I need to change?? But I didn’t find anything. So feeling like I never have had an issue like this I checked the input in code and left trigger worked!
if (Input.IsActionJustPressed("TabNavigationPrev"))

So is this a bug or is some setting I have wrong with UI Shortcuts? Also if anyone wants to reproduce this.

  1. Add a new InputMap with a keyboard input, controller button, and a controller trigger to a single action.
  2. Add a new button to the UI and set the shortcut to use the new action you created
  3. Attach a script to tie in to the pressed event and output debug text to see when it’s pressed. GD.Print()
  4. Test to see if the trigger on the controller is the only one not to output the debug text

The triggers are not buttons per se. The amount of pressure you put on them is between 0 and 1, just like a joystick axis is between -1 and 1. They are pressure-sensitive. That means that pressed is going not to be true/false but 0 to 1.0 while the trigger is held down. It could be a quirk of a trigger firing the pressed event lots of times that they disabled it in the shortcut functionality. This could be a bug, and you can log it and see what happens.

Instead of using the shortcut functionality, you can also just add a tiny script to the TabBar in question.

const  TAB_NAVIGATION_PREV = "TabNavigationPrev"
const  TAB_NAVIGATION_NEXT = "TabNavigationNext"

func _input(_event: InputEvent) -> void:
	if Input.is_action_just_pressed(TAB_NAVIGATION_PREV):
		select_previous_available()
	if Input.is_action_just_pressed(TAB_NAVIGATION_NEXT):
		select_next_available()