`Model::cursor_pos` is read by the verb in two places and was written by
nothing in the workspace: declared, initialised to the origin, never assigned.
So `GetCursorPosition()` answered `0, 0` for every call of every session.
That kills the universal drag-and-size idiom — stamp the cursor on
`OnMouseDown`, subtract it each `OnUpdate`, size by the difference. Every
delta came out zero, the frame was re-anchored to its own current size sixty
times a second while the player dragged, and the addon's own "that was a click,
not a drag" guard then declined to save. Nothing raises and nothing logs.
grom reported it twice as OpenMapClassic's map window refusing to resize; the
round before this one painted its invisible grips and left this underneath.
Fed in `ui_script/input.rs` beside `set_mouse_buttons`, for the reason that
one states: the pointer feed below is skipped for a cursor off the window and
for a UI hidden by TOGGLEUI, and the reference answers through both. UI units,
y-up from the bottom-left, undivided — UIParent is scale 1 here, so an addon's
`x / frame:GetEffectiveScale()` lands in the frame's own units as on the
reference. The test pins the whole idiom rather than the getter, because the
getter answering *something* was never the question.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn