Skip to content

Conversation

@CapnBry
Copy link
Contributor

@CapnBry CapnBry commented Oct 16, 2025

Adds a doubleclick handler for lua widgets on colorlcd to make them fullscreen. We've waited too long!

Widgets are awesome, all being right there on the main screen, strutting their stuff. Interacting with them is not allowed, of course, because it is all to easy to tap them accidentally. However, the tap and hold, long press, select Fullscreen from the menu is not exactly a quick interaction. This PR adds the ability to doubletap to jump right into fullscreen of a widget, rather than feeling like "digging into the menus" to access this behavior.

I feel like this is needed, now that the SYS button starts a menu journey rather than going to the tools menu. Launching the ExpressLRS script has changed from (Click, Tap) to (Click, Tap, Tap, Tap) with each tap requiring the user comprehend a new set of options presented to them. Widget doubletaps can allow quick access to fullscreen apps that used to be tools scripts and allow more natural interactions instead with what the user wants right up front from the main screen instead of feeling like everything is a buried configuration option.

Note that LVGL 9.4 adds this event type directly (LV_EVENT_DOUBLE_CLICKED), so this is currently emulated with EdgeTX code until that makes its way into EdgeTX. The timeout I've chosen is generous, but it might need to be even more generous, as I find that taps aren't accurately caught if you tap the screen quickly.

EDIT: Also tagging #4371 (which resulted in the awesome App Mode type widget) as related

@pfeerick pfeerick added UX-UI Related to user experience (UX) or user interface (UI) behaviour touch 👆 Related to touch interface widget labels Oct 17, 2025
@raphaelcoeffic
Copy link
Member

@CapnBry @philmoz we might want to support this gesture in a more generic way. What do you think?

@CapnBry
Copy link
Contributor Author

CapnBry commented Oct 20, 2025

Yeah of course, whatever you think is the best way to accomplish this. I've just bellyached about this several times of the past few years and wanted to at least get the ball rolling on some more direct method for lua widgets to more easily integrate into common workflows. The new System Menu UI looks and works great, but it puts tools luas so much further out of reach that I believe being able to access things starting from the MainView is a necessity.

Ping me on discord or continue here to let me know how I can help.

@raphaelcoeffic
Copy link
Member

I was more searching for help from @philmoz here more than you @CapnBry ;-)

@philmoz
Copy link
Collaborator

philmoz commented Oct 22, 2025

Touch screen is handled by LVGL, and since it does not provide a double tap event there is no easy way to do this in a generic manner (other than hacking the LVGL source).

I'm not keen on ad-hoc solutions like this as they may start to proliferate when people want it in other places.

@CapnBry
Copy link
Contributor Author

CapnBry commented Oct 22, 2025

I agree that it is very ad-hoc, but also how it is handled in current LVGL version (except using the input's long press delay as the timeout). It can be implemented anywhere in the class hierarchy as needed to provide it as needed instead of with duplicate code (Widget, Window, etc), but does have a pretty hefty RAM cost if there's a lot of controls and it is all the way up-- 8 bytes per control.

I'm open to any ideas on how we can cut down the friction to getting into fullscreen mode (where we can operate as a tool script). This just seemed the most touch-natural way to me. We could tell everyone to just make a second screen on their handsets that is always the same widget fullscreen, but that seems suboptimal if the widget is already in front of their eyes on the first screen.

@3djc
Copy link
Collaborator

3djc commented Oct 23, 2025

Latest version open now apps on long SYS, that makes it much more acceptable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

touch 👆 Related to touch interface UX-UI Related to user experience (UX) or user interface (UI) behaviour widget

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants