Affected Chromium adapters fail after selecting WebGPU even when packed renderer paths are forced. Use WebGL2 for the web app and let device limits select renderer tiers.\n\nRefs #788
dms() rounded the seconds after splitting the degrees and minutes off, so
seconds that rounded up had nowhere to go:
45.9999 deg at AUPREC 0 -> 45d59'60"
89.99999 deg -> 89d59'60"
Round once, into the smallest unit shown, and split degrees and minutes out
of the rounded total, as format_length now does.
surveyor() then needed the same treatment one level up: it chose its pole
and quadrant from the unrounded direction, so a bearing that rounded to the
quarter turn came out as the contradictory `S 90d0'0" E` the function's own
doc comment sets out to avoid. Snap the direction to the shown resolution
before deciding, so 359.99999 deg at AUPREC 0 is `E` rather than a bearing
of ninety degrees.
format_length rounded the fraction after splitting the whole part off, so a
value that rounded up to a full unit had nowhere to go:
fractional 5.995 -> 5 (64/64 reduced to 1/1, then dropped)
fractional 0.995 -> 0
architectural 11.999 -> 0'-11"
architectural 23.999 -> 1'-11"
engineering 11.99 -> 0'-12.0" (twelve inches is a foot)
engineering 23.99 -> 1'-12.0"
Round once, into the smallest unit that will be shown, then split feet and
whole inches out of the rounded total. The carry reaches every column, so
the same values now read 6, 1, 1'-0", 2'-0", 1'-0.0" and 2'-0.0".
Dimension definition points come out of a DWG as ordinary POINT entities on
the Defpoints layer, so the header's PDMODE applied to them like any other
point. Opening a drawing authored elsewhere with a point style set stamped
that glyph on every dimension end, burying the drawing under crosses and
circles.
They are a dimension's bookkeeping, not draughting the user placed, so
resolve PDMODE to 0 for them and leave the single pixel-sized dot. Both
render paths — the header one and the viewport-aware relative-PDSIZE one —
go through the same resolution, so a relative PDSIZE cannot bring the glyph
back.
Fixes#790
The MText editor paints its own caret and is not a focusable widget, so
the command input keeps widget focus behind the dialog. It captures the
arrow itself, which routes the key through CommandLineArrowProbe instead
of ArrowKeyPressed — and that path only asked whether the command input
was focused, never whether an editor was open. Up and Down therefore
walked command history while the user was typing in MText.
Give the probe the same rule ArrowKeyPressed already applies: while the
editor is open the arrow moves its caret. The probe now carries the shift
state so a held Shift still extends the selection on this path.
Fixes#655