forked from 1b-agent/opencadstudio-upstream
feat(mtext): character-level text selection on the preview
The rendered MText preview is now interactive: drag across glyphs to select a character range and apply toolbar formatting (bold, italic, underline, overline, strike, case, alignment) to exactly those characters. The text layout gains an opt-in pass that emits one world-space box per visible character carrying its reading-order index; the editor maps those boxes into the preview frame, hit-tests pointer drags against them, and highlights the selection. Formatting splices the matching inline codes into the raw value at the selected byte range (mapped via a code-aware visible- character scanner). With no preview selection the Edit-box path is unchanged. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
a07af32714
commit
32136dd9dd
9 files changed
+443
-31
No files matched your search
@@ -740,6 +740,10 @@ pub enum Message {
|
||||
/// Switch the editor body between raw code input (`false`) and the
|
||||
/// rendered preview (`true`).
|
||||
MTextShowPreview(bool),
|
||||
/// Begin a preview text selection at the given visible-character offset.
|
||||
MTextSelStart(usize),
|
||||
/// Extend the preview selection to the given visible-character offset.
|
||||
MTextSelTo(usize),
|
||||
/// Commit the editor: create or update the MText entity.
|
||||
MTextOk,
|
||||
/// Discard the editor without creating / changing the entity.
|
||||
|
||||
Reference in new issue
Block a user