k-krawczyk opened a new pull request, #24235: URL: https://github.com/apache/camel/pull/24235
## Description Fixes [CAMEL-23818](https://issues.apache.org/jira/browse/CAMEL-23818). In `camel tui`, opening the Actions menu (F2) and scrolling with the arrow keys leaves stray characters behind on the **Start/Stop Tape Recording** and **Show/Hide Keystrokes** rows. The text shifts one column left and leftover letters remain after the selection moves away. ## Root cause These are the only rows whose icon is an *emoji presentation sequence* â a text-default base glyph followed by Variation Selector-16 (U+FE0F): - Start/Stop Tape Recording: `U+23FA` / `U+23F9` + `U+FE0F` - Show/Hide Keystrokes: `U+2328` + `U+FE0F` Terminals render them 2 columns wide, but TamboUI measures them as 1 column (`CharWidth.of` sums base(1)+VS16(0), and `Buffer.setString` reserves a single cell). The 2-wide terminal glyph then drifts one column out of sync with the buffer and the redraw diff leaves ghost characters. Rows using regular wide emoji are unaffected. ## Fix Root cause is fixed upstream in TamboUI: tamboui/tamboui#388 (base+VS16 now counts as width 2 and reserves a continuation cell). This PR is the **temporary Camel-side workaround** described in the issue: swap the three labels in `ActionsPopup.renderActionsMenu` to unambiguous 2-wide emoji (no VS16), so the buffer width matches the terminal: | Label | Before | After | |-------|--------|-------| | Show/Hide Keystrokes | â¨ī¸ (`U+2328`+VS16) | đ¤ (`U+1F524`) | | Stop Tape Recording | âšī¸ (`U+23F9`+VS16) | âŦ (`U+2B1B`) | | Start Tape Recording | âēī¸ (`U+23FA`+VS16) | đ´ (`U+1F534`) | The previous one-off "extra space after â¨ī¸" hack is removed since the new icons render at the expected 2-wide. A code comment marks the workaround for reversion once a TamboUI release containing #388 is adopted via the `tamboui-version` bump in `parent/pom.xml`. Emoji choices are open to maintainer preference â happy to swap to other 2-wide glyphs. ## Verification - `mvn -pl dsl/camel-jbang/camel-jbang-plugin-tui compile` â BUILD SUCCESS. - Change is limited to three string literals + a comment; no behavioral/logic change. đ¤ Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
