Previous fix put the InvisibleButton absorber inside Begin, which
covered the entire panel body — and the Settings panel's tab bar
has its hit-testing in that same area. Tabs lost click priority to
the absorber (their hover/click events were stolen) so the user
couldn't switch tabs. Worse, the chat-panel drag the absorber was
supposed to fix wasn't actually fixed because chat's body is
covered by a BeginChild for the scrollable tail — clicks land in
the child window, not the parent body, so the parent absorber
never sees them.
Right scope: scrollable BeginChild bodies. That's where the chat
panel's empty-space clicks actually land, and where the parent-
drag fall-through originates. Other panels (Settings, Vitals,
Debug) don't use BeginChild for content — their bodies are filled
with widgets that already absorb clicks naturally.
The fix:
· Begin reverts to ImGui default (title bar drags, body of widget-
filled panels naturally absorbs through the widgets themselves).
· BeginChild grows the InvisibleButton absorber inside, so empty-
space clicks inside a scroll region don't fall through to the
parent's window-drag init.
Net effect:
· Chat panel: empty clicks in the scroll tail no longer drag the
parent window.
· Settings panel: tabs are clickable again.
· Vitals, Debug: unchanged.
dotnet build green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>