Explore: resizable windows everywhere + content-driven layout (text wrap / self-sizing elements) so custom fonts fit #665
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#665
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Explore / feasibility. Most of the viewer's windows and panels are fixed-size XUI layouts: absolute
left/top/width/heightrects,top_pad/left_padchains, and labels sized for the default font. With a custom font or a larger font size (FSFontSettingsFile,FSFontSizeAdjustment), text gets clipped, labels overlap controls, and some windows can't be resized to make room. Goal: decide how far we can go toward every window resizable and text that fits whatever the font, and what UI-backend work that needs.Questions to answer
can_resize="false", nofollowson children) and which clip with a larger font. A quick automated pass could render every floater at, say, +2 font size and flag clipped or overlapping text.scripts/ci/check_xui.pyis a starting point for static checks.can_resizewith sensiblefollowsflags.wrap="true", auto-height).llui: elements that size and space themselves from their content, instead of absolute rects. Options:LLLayoutStack(already a 1-D box layout, with its own perf concern in #359).LLTextBox/LLTextBasemust report a preferred height for a given width (height-for-width), so containers can lay them out. Check howLLFontGLmetrics and our VK UI text path expose this.Related
setShapeafteraddChild). That's a pattern to generalise.Deliverable for this ticket
A written plan: the clipping inventory, a recommended layout-engine design, a migration path, and an estimate. Then follow-up tickets.