Repository navigation
Conversation
Repeater cells are separate canvas controls with their own hit-test, hover outline, and indexed action. FullscreenView.list pages a list through them like WindowView.list. Region tooltips are laid out by the compiler beside their control, below it or above it where the canvas ends, as a vanilla-styled panel of plain text. The session sends the hovered control's tooltip in two layers reserved below the overlay. Identical panels share a texture. Real items, sections, runtime sprites, and hitbox item models stay container-only and fail the build with errors that say why. The industrial Repeater sizes its cells at 18px per slot outside sections too.
…ct § in tooltips - <Repeater fixed> opts into 18px-per-slot sizing; the default again leaves sizing to the section area, so container click routing is unchanged. - Embedded newlines in full-screen tooltips start separately positioned lines. - Tooltips reject § formatting codes alongside MiniMessage tags. - Newlines in bound full-screen slot text are sent as spaces.
oglassdev
changed the base branch from
feat/fullscreen-session
to
feat/fullscreen-horse
October 16, 2026 00:08
oglassdev
marked this pull request as ready for review
October 16, 2026 00:08
oglassdev
added this pull request to stack #130
October 16, 2026 00:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #119
Part of #115
What's supported on full-screen windows
onX(index, click: FullscreenClick)). The industrial<Repeater>now sizes cells at 18px per slot outside sections too. Before this, cells collapsed to their content on the canvas. Container goldens are unchanged.FullscreenView.list(...)creates the sameWindowListasWindowView.list(...). It feeds indexed renders throughat(cell), andcanPrevious()/canNext()back the flags on the paging buttons.<Region tooltip>and the industrial controls built on it, includingTabslabels andButton disabled={{ tooltip }}. See the decision below.Tooltip decision
The compiler lays each tooltip out beside its control: centred below it, or above it where the canvas runs out, and always kept on the canvas. The panel is vanilla-styled (dark fill, purple border, cut corners). The title is white and the lines are grey, both plain text. The panel is baked art, and the lines are static labels. The session sends the hovered control's tooltip next to its outline, in two new layers (252 panel, 253 text) under the overlay layer. That cuts the content layer limit from 252 to 250. Panels with the same rect share one texture.
I didn't make the tooltip follow the cursor, for two reasons:
text.vshcan't see the cursor there, because the entity shader draws it.Anchoring to the control fits the existing server-driven hover. The runs are only re-sent when the hovered control changes, and it works the same in both modes. MiniMessage tags are a build error, because the panel is sized from the plain text at compile time.
Items decision
Real items stay container-only. These fail the build and say why:
<Items>,<Collection>, a<Repeater item>, and<Section>s (the message now reads "only available in container windows"). I didn't build item icon rendering.Rejected at compile time
<Items>,<Collection>,<Repeater item><Section>, slot patterns<Image bind>(runtime sprites)<Switch>over images<Input>itemModelshadowChecks
just test-rust -p window-core fullscreen/layoutjust golden: onlyfullscreenwas updated on purpose (repeater and tooltips added). Every other case is unchanged.just gradle :runtime:test --tests '*Fullscreen*' :minestom:test --tests '*Fullscreen*'just check-tsjust lintNot yet verified in a real client