This reverts e0895013. Two things were wrong with taking it.
**It was resolved by taking upstream's whole file.** `git checkout --theirs` on a
conflicted path takes that file's entire other side, not the conflicting hunk, so
the commit quietly cut 1454 lines out of this fork's own `OptionsFrame.xml`
(4586 → 3132) and replaced `ScriptLogFrame.xml` wholesale. That is what the 180
new test failures were: `BenillaKeyBindings_String` and `OptionsFrameSliders`
undefined, because the `<Script>` blocks defining them were gone.
**And the change itself is a regression here.** Its premise is that
`BenillaScrollBarTemplate`'s `OnValueChanged` is a faux-list handler every
instance has to override. In this fork it is not: our
`BenillaFauxScrollBar_OnValueChanged` (`ScrollTemplates.xml:33`) does the
faux-list `offset`/`updateFunc` step *and* `frame:SetVerticalScroll(value)` when
the parent is a ScrollFrame — a superset of upstream's
`BenillaScrollBar_OnValueChanged`. Swapping the template onto the plain handler
and deleting the faux one would take the faux-list path away from every bar built
from the template.
The earlier claim in e0895013's message — that
`BenillaFauxScrollBar_OnValueChanged` was "defined nowhere in the repo" — was
also wrong. It is defined at `ScrollTemplates.xml:33`. The grep behind that claim
ran against the conflicted working copy, where upstream's *non-conflicting*
deletion of the definition had already been applied, so only the call site showed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn