Events: HELD vs. FIRST_HELD

In the ever fun attempt to “find room” for prop file button events, I realize I still have no grasp on some of the button event stuff.
I’m really just looking to confirm that HELD events can’t be used for more than one thing, because the shorter duration one would happen before ever getting to the later one?
Like something set to EVENT_FIRST_HELD_LONG can never register if there’s already a EVENT_FIRST_HELD_MEDIUM version right?
Sort of common sense there.
Any hope trying to do it with EVENT_CLICK_LONG and EVENT_FIRST_CLICK_LONG?
Like what’s the difference there?

If your EVENT_FIRST_HELD_MEDIUM event returns 0, then the EVENT_FIRST_HELD_LONG event will still be sent. Not sure how useful that is though.

EVENT_CLICK_LONG is meant to be used if you don’t care about double/triple/quad clicks. Let’s say you do a short click, immediately followed by a long click, then the button code will first try to send an EVENT_SECOND_CLICK_LONG event. If that returns zero, then it generates an EVENT_CLICK_LONG.

A single long click works the same way, first it generates EVENT_FIRST_CLICK_LONG then EVENT_CLICK_LONG if the first one returned zero.

So if you had one case for EVENT_FIRST_CLICK_LONG, and another one for EVENT_CLICK_LONG, the first one would get single long clicks, while the second would get all double-, triple- and quad-long clicks.

I’m not sure if returning zero means you didn’t let go?
I guess what I meant would be for example clicking and not letting go.
So if there’s 2 events for a button,
EVENT_FIRST_HELD_MEDIUM
and
EVENT_FIRST_HELD_LONG
We click and hold, reach the BUTTON_HELD_MEDIUM_TIMEOUT of 800ms but keep holding the button down. It seems it fires an event for EVENT_FIRST_HELD_MEDIUM and doesn’t wait to see if we reach 2000ms for EVENT_FIRST_HELD_LONG.

No, I literally just mean return 0; in Event2().
When you return 1 (most) further events are suppressed, but you can do something in Event2() and then return 0 because you want the remaining events.

You’re correct about not waiting. HELD events are fired immediately.