Skip to content

[GUI] Enhance input event handling and optimize EPG rendering - #1380

Merged
Huevos merged 1 commit into
OpenViX:Developerfrom
DimitarCC:rc-ir-fix
Oct 23, 2026
Merged

Huevos merged 1 commit into
OpenViX:Developerfrom
DimitarCC:rc-ir-fix

Conversation

@DimitarCC

Copy link
Copy Markdown
Contributor

This pull request introduces several performance optimizations and behavioral improvements to input event handling, EPG grid rendering, and configuration of input devices. The most significant changes include batching and intelligent processing of input events to avoid repeated key handling issues, implementing row-level caching in the EPG grid to reduce unnecessary redraws, and using device-specific repeat/delay timings for remote controls. Additionally, EPG selection UI updates are now rate-limited for smoother navigation.

Input Event Handling Improvements

  • Modified eRCInputEventDriver to batch input events, queue them, and deliver at most one key event per main loop iteration. This prevents repeated key events from being mishandled when the UI redraws slowly and ensures proper processing during screen switches. [1] [2] [3]

EPG Grid Performance Enhancements

  • Added a row-level cache (rowCache) to EpgListGrid so that only the selected row is rebuilt every redraw; other rows are reused unless their data or geometry changes. The cache is cleared on relevant data/geometry changes and limited to a maximum size for efficiency. [1] [2] [3] [4] [5] [6]

Input Device Configuration Improvements

  • When configuring input devices, the system now queries and uses the actual repeat/delay timings from the device (if available) instead of hardcoded defaults, ensuring better compatibility and user experience. [1] [2] [3] [4]

EPG Selection UI Responsiveness

  • The EPG selection screen now rate-limits updates to selection info (event details, service, etc.) while the user holds navigation keys, reducing unnecessary redraws and improving perceived responsiveness during fast navigation. [1] [2] [3] [4]

Improve remote control input responsiveness by reading events in bursts,
filtering out stale key repeats, and deferring subsequent key presses
to allow screen transitions to complete via 0ms timers, preventing
"unhandled key" issues. Automatically use the kernel's configured key
repeat delay and period as defaults for input devices.

Speed up EPG grid rendering by caching unselected rows, significantly
reducing Python rebuilds during scrolls. Rate-limit expensive selection
info updates during fast navigation to improve UI responsiveness.
@Huevos
Huevos merged commit 3d25221 into OpenViX:Developer Oct 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants