Repository navigation
Unify scrollbars and remove duplicated footer exclusion - #130
PystoyPlayer wants to merge 11 commits into
Conversation
|
Issues: CONFIRMED: ThemedScroller.swift:13: with Increase Contrast on, the thumb is filled with the system |
|
Issues:
|
|
This pull request is not filled in correctly: the confirmation checkbox is missing. Please complete every section as described in CONTRIBUTING.md and update the PR so it can be reviewed. This doesn't compile. Please make sure the project builds before opening a PR. Issues:
|
|
Issues:
|
|
Issues:
|
Key change
Use a shared slim themed native overlay thumb in common vertical ScrollViews, preserving AppKit track feedback, hit geometry and auto-hide. Remove duplicated additional footer scroller insets while retaining content clearance; chat-history input and picker overlay exclusions remain.
Reason
AppKit combines content and scroller insets. Reserving the same floating footer twice made the thumb stop above the usable lower boundary. Content already clears that footer, so its additional scroller inset is zero. The updated test encodes this measured geometry; it is not a claim of maintainer product approval.
Screenshot/video result (before/after)
The retained actual-client Settings crops show identical bottom position before/after and exclude the account profile. Neutral-row native captures cover additional geometry. The knob slot now delegates to NSScroller; Increase Contrast selects an opaque color that contrasts with the actual panel surface and a 5 pt thumb. The actual system Increase Contrast preference has not been exercised.
Before
After
Confirmation
macOS 27.0.1 (26A434), Xcode 27.2 (27B52), Telegram 13.1.0 (283357), Debug arm64.
The standard TGUIKitTests target passes all six ThemedScrollerTests. The new regression changes content clearance between 0, 56 and 20 points and reapplies the picker scroller insets repeatedly, asserting both additional clearance and the real native scroller endpoint. This models repeated search/category/theme state updates. The emoji update now derives its additional bottom exclusion from the current contentInsets instead of restoring a fixed 50 pt inset, retaining 46 pt top clearance and standalone behavior.
The added standalone source-extraction harness, screenshots and superseded review logs have been removed from the production patch. The earlier actual-client crops above remain historical comparisons in this description; they are not current dynamic-update screenshots. Standard target coverage replaces the unwired harness.
A fresh full Debug arm64 workspace integration build with the shipping fixes passed. Local SDK/profile overrides and other pending changes are included; this is not an independent distribution build of this PR head. Other macOS versions and the physical Increase Contrast preference were not exercised.