Skip to content

Add caret and draggable text selection handles to chat bubbles - #86

Merged
ymote merged 1 commit into
mainfrom
fix/chat-selection-handles
Oct 9, 2026
Merged

ymote merged 1 commit into
mainfrom
fix/chat-selection-handles

Conversation

@ymote

@ymote ymote commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Chat text had no caret or draggable endpoints, and double-click selected the whole message. Clicking now places a visible caret, double-click selects a word, and either selection handle can adjust the range. Shift+arrow/Shift+click extend selection; Select All and the separate full-message copy action remain available.

Touch long-press on a message body or caption starts word selection. Handle drags own their gesture so the timeline does not scroll, while normal swipes still scroll and normal link taps still work. The message remains read-only.

Pins the small Makepad selection-geometry API change in OctoSense-org/makepad#114.

Validation:

  • Release app and offline native Metal fixtures built successfully.
  • 18 selection checks passed in light/desktop and dark/phone-width layouts: both handles, caret, partial clipboard text, Unicode, rich text, links, selection visibility, menu copy and reset.
  • 9 timeline checks passed, including selection without scrolling and normal wheel/margin scrolling.
  • 4 host-injected touch checks passed: long-press, multiline handle dragging, link selection and normal swiping. Physical Android/iOS and their native clipboard menus have not been validated.
  • Rinx library tests: 355 passed, 2 ignored.
  • Theme and translation guards passed. Existing dead-code warnings remain.

Makepad widget-library tests: 291 passed, 3 failed on both this change and the unchanged e9b9f0a6b baseline. The identical pre-existing failures are desktop_style::tests::mobile_typefaces_keep_symbol_fallbacks_across_appearances, widget_tree::tests::test_observe_and_find_single_node, and widget_tree::tests::test_property_patch_no_structural_rebuild.

@ymote
ymote merged commit fdcfed1 into main Oct 9, 2026
3 checks 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.

1 participant