The picker's modal backdrop covers the screen on main, so no point is
outside its host layer; the drop check compares with the picker's own
layer, which the middle of the frame isn't on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The picker sits over the page's middle on main's dialog layout, and a
drop on the picker takes nothing, as it should.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dialog kept its width unit from when it opened but read the height
in the vertical ruler unit of the moment, so rulers switched while it
was open (the control channel's document.preferences) turned a typed
50 mm into 50 in. It now keeps the vertical unit too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A test for all eleven ruler units (points to Ha): the width and height
the dialog shows read back as the frame's size, so OK never resizes it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An imported cross-reference's text is regenerated only when it is exactly what its format
generates for its destination (Document::drop_generated_xref_text, once the destinations are
resolved); "Page 7, revised" is an edit and is kept, as is the text of one whose destination is
gone. The loose in-order match (matches_format) is gone. Page numbers are recognised by the
instance's AssociatedTextVariable (a cross-reference page number variable, or InDesign's name
for it when the file doesn't define it) rather than its Name, and text inside tracked-change
wrappers counts as shown (insertions in, deletions out). Export writes generated text with its
page numbers as the live variable too, so it reads back as generated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgGsJkVe5GYG9qK6VFdECa
On a parent page a running-header variable shows <Name>, as InDesign shows it (it was blank). Text
with no page that isn't on a parent (a frame composition can't place on a page) keeps the
variable's text before and after: frames now record whether they are on a parent spread, and
the composed values are cached by page and parent.
Split from #1232 (parent-page-display), as asked in review.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgGsJkVe5GYG9qK6VFdECa
A click with a frame tool opened the Rectangle dialog in picas whatever
Preferences > Units & Increments or the rulers' unit menus said. It now
shows the width in the horizontal ruler unit and the height in the
vertical one, and reads bare numbers typed in each field the same way.
The properties panel and the control channel open it the same way.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
egui still counts a click when the pointer leaves the tool rect; keep the release modifiers when the press started on the slot. The Alt-cycle test now uses 1 ms frames so an Alt-then-plain pair is a real double-click that must not open Polygon Settings.
Ignore primary releases outside this tool button so another widget cannot steer Alt-cycle or suppress dialogs; harden the Alt-click test to clear i.modifiers before release.
egui pairs a plain click with a prior Alt-click as a double-click; remember the previous click's Alt so polygon/transform dialogs only open for two plain clicks.
Introduced a new test function to check Georgian menu label translations and replaced the previous inline implementation with a call to this new function.