BL-16822 Inline images: the gestures, the toolbar, and Add Image in the text menu - #8321
BL-16822 Inline images: the gestures, the toolbar, and Add Image in the text menu#8321hatton wants to merge 1 commit into
Conversation
aec5849 to
1411da9
Compare
dcceab2 to
78244c2
Compare
|
✅ Handled — see the outcome at the end of this comment. [Devin] Investigate: Localization priority needs confirmation
The new command uses the highest-priority catalog. Confirm that this feature-specific menu action belongs there instead of the medium-priority catalog. [Claude Opus 5 (1M context) from Hatton's machine during devin-review] Fair question, and now answered: the developer chose medium priority, so the entry has moved to |
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin on 2026-09-07 12:46 MDT up to commit It raised 5 things. Each has its own review thread with the reasoning and the outcome; in short:
The fixes were amended into this branch after the review, so the commit above is not the current head; a fresh review is running against the new one. The only GitHub check on this PR is |
78244c2 to
471b275
Compare
1411da9 to
daf1f21
Compare
|
✅ Assessed, no change needed — see the outcome at the end of this comment. [Devin] Investigate: Shared toolbar lacks effect justification
Inline images now exercise [Claude Opus 5 (1M context) from Hatton's machine during devin-review] Both |
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin again on 2026-09-07 14:00 MDT, on commit It raised 5 new things. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the first round's threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
471b275 to
170d1bd
Compare
daf1f21 to
7de94f8
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a third time on 2026-09-07 15:55 MDT, on commit It raised 5 new things. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
170d1bd to
8b39889
Compare
7de94f8 to
dbb6f90
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a fourth time on 2026-09-07 16:20 MDT, on commit It raised 2 new things. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
8b39889 to
0a0f8b0
Compare
dbb6f90 to
27c255d
Compare
|
[Devin] Bug: Older text history blocks image undo
After newer text edits are undone, |
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a fifth time on 2026-09-07 16:50 MDT, on commit It raised 1 new thing. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
…he text menu What a person actually does to a picture in a text block. Right-click text and choose Add Image; drag the picture to any of the four docks or down through the lines of the block; drag a corner handle to resize it; use the toolbar it carries, which is the canvas element menu (rendered through the module the first commit in this stack extracted). The offered target excludes editables inside a canvas element, editables that are not direct children of a translation group, and data-book and xmatter fields, where the field's markup goes through the data div and a wrapper would end up in the stored book title. The two units the drag has to reconcile are worth knowing: getBoundingClientRect and a pointer event's clientX/clientY are viewport pixels, while clientHeight, scrollTop and the offset custom property are layout pixels. Bloom draws the edit view's zoom by scaling a container around the page, so the ratio between them IS the zoom, and computeViewportPxPerLayoutPx measures it once at pointerdown. Two more places had to learn about the feature: - removeEditingDebris clears bloom-inlineImage-selected, which is editing UI but not a bloom-ui class, so nothing else would strip it on the way to a save; from the book's HTML it would reach spreadsheet exports and published books. - ckeditor's undo command is intercepted when an inline image is the active thing. Nothing in Bloom binds ctrl+z, so the key reaches ckeditor's undo plugin, which restores the saved HTML of ONE editable -- putting the focused language's copy back and leaving the others at the geometry just undone. Ordinary typing keeps its ctrl+z: the gate is the same one the top-bar Undo button consults, and typing after a deletion hands the key back. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DCBGajN5YyAYPBenEf1yy
0a0f8b0 to
b4b0354
Compare
27c255d to
d2860db
Compare
|
[Devin] Bug: Full text history breaks undo ordering
Once the 20-entry history is full, |
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a sixth time on 2026-09-07 17:30 MDT, on commit It raised 1 new thing. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
What a person actually does to a picture in a text block. Right-click text and choose
Add Image; drag the picture to any of the four docks or down through the lines of the
block; drag a corner handle to resize it; use the toolbar it carries, which is the
canvas element menu (rendered through the module the first commit in this stack
extracted). The offered target excludes editables inside a canvas element, editables
that are not direct children of a translation group, and data-book and xmatter
fields, where the field's markup goes through the data div and a wrapper would end up
in the stored book title.
The two units the drag has to reconcile are worth knowing: getBoundingClientRect and
a pointer event's clientX/clientY are viewport pixels, while clientHeight, scrollTop
and the offset custom property are layout pixels. Bloom draws the edit view's zoom by
scaling a container around the page, so the ratio between them IS the zoom, and
computeViewportPxPerLayoutPx measures it once at pointerdown.
Two more places had to learn about the feature:
a bloom-ui class, so nothing else would strip it on the way to a save; from the
book's HTML it would reach spreadsheet exports and published books.
Nothing in Bloom binds ctrl+z, so the key reaches ckeditor's undo plugin, which
restores the saved HTML of ONE editable -- putting the focused language's copy back
and leaving the others at the geometry just undone. Ordinary typing keeps its
ctrl+z: the gate is the same one the top-bar Undo button consults, and typing after
a deletion hands the key back.
Card: https://issues.bloomlibrary.org/youtrack/issue/BL-16822
🤖 Generated with Claude Code
https://claude.ai/code/session_014DCBGajN5YyAYPBenEf1yy
Devin review
This change is