Port ledger: eight screen and widget methods are ported, not missing

client2-009's missing rows were stale for the keyboard focus work (#4638,
27f948813): Screen.keyPressed and nextFocusPath land in game/key_focus.rs,
the ban notices in ban_notice.rs and Title::next_ban_notice, and the HUD
reset on disconnect in Game::hud_disconnected. Each corrected row names the
function that answers it, with what differs noted as a gap where something
does.
This commit is contained in:
MSedgeMC committed 2026-11-02 09:15:00 +00:00
1 parent a7c0339fe4
commit 6031f1a85b
1 file changed
+8 -8
+8 -8
View File
@@ -31,8 +31,8 @@ Gui.addSocialInteractionsToast skip:service social interactions are not offered
Gui.handleKeybinds port crates/horizon-client/src/game.rs::Game::key_pressed gap: minor: the social interactions key has no port (see addSocialInteractionsToast)
Gui.openChatScreen port crates/horizon-client/src/game/chat.rs::Game::open_chat
Gui.openChatAndAddText port crates/horizon-client/src/game/chat.rs::Game::open_chat the text is passed as the initial input
Gui.buildInitialScreens missing player: ban notices are not shown before the title screen (the services attributes and profile actions are not read); the onboarding screen is ported (title/onboarding.rs)
Gui.addInitialScreens missing player: same as buildInitialScreens: the onboarding screen is queued first (Title::start_onboarding), no ban notice is
Gui.buildInitialScreens port crates/horizon-client/src/title.rs::Title::next_ban_notice the queue ban_notice::initial_notices fills (from Title::poll_account) is popped one notice at a time, the title last
Gui.addInitialScreens port crates/horizon-client-render/src/ban_notice.rs::initial_notices the ban notices in vanilla's order; the accessibility onboarding is queued by Title::start_onboarding
Gui.canInterruptScreen missing minor: unsure: no check that stops a server-opened screen from replacing an open one was found
Gui.renderActiveTextDebug skip:debug debug overlay of text bounds
GuiGraphicsExtractor.enableScissor port crates/horizon-client-render/src/screen_draw.rs::paint gap: minor: callers push a rectangle; there is no stack, so enclosing rectangles are not intersected
@@ -83,12 +83,12 @@ Hud.extractFood inline crates/horizon-client-render/src/hud_layout.rs::HealthHud
Hud.extractTextureOverlay port crates/horizon-client-render/src/hud_overlays.rs::camera_overlays gap: player: the powder-snow freeze outline is not drawn; only the equippable camera overlay (pumpkin) is
Hud.extractSlot port crates/horizon-client/src/game.rs::Game::draw_slot_item
Hud.setNowPlaying port crates/horizon-client-render/src/hud_overlays.rs::Titles::set_overlay the animate flag gives the rainbow colour
Hud.onDisconnected missing minor: unsure: no HUD reset on disconnect found; titles clear only on the ClearTitles packet
Hud.onDisconnected port crates/horizon-client/src/game/remote.rs::Game::hud_disconnected the tab list, boss bars, toasts, debug charts and titles reset; chat is left alone (ChatComponent.storeState)
Hud.willPrioritizeJumpInfo port crates/horizon-client/src/locator_bar.rs::ContextualBar::next the jumping input comes from Game::mount_jumping
Hud.HeartType.getSprite port crates/horizon-client-render/src/hud_layout.rs::heart
Hud.HeartType.forPlayer inline crates/horizon-client-render/src/hud_layout.rs::HealthHud::layout heart kind comes from the health inputs
AbstractButton.extractDefaultSprite port crates/horizon-client-render/src/screen_draw.rs::button disabled, highlighted and normal sprites
AbstractButton.keyPressed missing minor: Enter or Space does not press a focused button; Enter only confirms a title text edit
AbstractButton.keyPressed port crates/horizon-client/src/game/key_focus.rs::act Enter, Space and keypad Enter are Nav::Select, which presses the focused target (Act::Press), as pad_menu.rs and startup_menu.rs apply it
AbstractContainerWidget.setFocused port crates/horizon-client-render/src/pack_screen.rs::PackScreen::set_focus gap: minor: screen-level focus only; no child-container focus
AbstractContainerWidget.mouseClicked port crates/horizon-client-render/src/ui.rs::Scroll::press gap: minor: child click dispatch is per screen; only the scrollbar press is here
AbstractScrollArea.isOverScrollbar inline crates/horizon-client-render/src/ui.rs::Scroll::press scrollbar column test folded into the press
@@ -109,7 +109,7 @@ AbstractSelectionList.extractListBackground port crates/horizon-client-render/sr
AbstractSelectionList.enableScissor port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list scissor clamped to the screen
AbstractSelectionList.scrollToEntry port crates/horizon-client-render/src/pack_screen.rs::List::scroll_to
AbstractSelectionList.setFocused port crates/horizon-client-render/src/pack_screen.rs::PackScreen::set_focus gap: minor: focusing a row does not select it; vanilla selects the focused entry
AbstractSelectionList.nextEntry missing minor: arrow keys do not move the selection between rows in the pack or server lists
AbstractSelectionList.nextEntry port crates/horizon-client/src/game/key_focus.rs::act gap: minor: an arrow steps a Kind::Row target and the list selects the row it lands on (Title::focus_world_row); Page Up and Page Down do nothing
AbstractSelectionList.extractListItems port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list rows culled to the visible band
AbstractSelectionList.extractItem port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list selection outline and row content
AbstractSelectionList.extractSelection port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list two fills: outline colour and black inner
@@ -123,8 +123,8 @@ AbstractSliderButton.getHandleSprite inline crates/horizon-client-render/src/ui.
AbstractSliderButton.updateWidgetNarration skip:other narration only
AbstractSliderButton.extractWidgetRenderState port crates/horizon-client-render/src/ui.rs::slider_ext the whole message, value included, scrolls inside the slider (margin 2)
AbstractSliderButton.handleCursor port crates/horizon-client-render/src/widgets.rs::widget_cursor gap: minor: no resize cursor while dragging
AbstractSliderButton.setFocused missing minor: keyboard focus does not enable value changes; there is no change-value state
AbstractSliderButton.keyPressed missing minor: Left and Right do not move a focused slider; Enter does not toggle it
AbstractSliderButton.setFocused port crates/horizon-client/src/game/key_focus.rs::slider_edit_on_focus the arrows change the value only when the mouse or Tab focused the slider, not when an arrow did
AbstractSliderButton.keyPressed port crates/horizon-client/src/game/key_focus.rs::act left and right nudge a focused slider once Tab or Enter let them (Act::Nudge), Enter toggles it (Act::ToggleSlider)
AbstractSliderButton.setValue port crates/horizon-client-render/src/options_ui.rs::set_slider gap: minor: the 0..1 clamp is done by the caller (ui.rs slider_value)
AbstractStringWidget.extractWidgetRenderState port crates/horizon-client-render/src/screen_draw.rs::string_widget gap: minor: hover tooltip and click cursor for styled text are not drawn
AbstractStringWidget.onClick missing minor: clicking a styled label with a click event does nothing here; book links and chat links do work
@@ -143,7 +143,7 @@ AbstractWidget.extractScrollingStringOverContents port crates/horizon-client-ren
AbstractWidget.mouseClicked port crates/horizon-client/src/title.rs::Title::click gap: minor: click dispatch is per screen; the press sound is audio.rs Audio::play_button_click
AbstractWidget.mouseReleased port crates/horizon-client-render/src/ui.rs::Scroll::release gap: minor: only the scroll release; widget onRelease is per screen
AbstractWidget.mouseDragged port crates/horizon-client-render/src/ui.rs::Scroll::drag gap: minor: only scroll drag; widget onDrag is per screen
AbstractWidget.nextFocusPath missing minor: unsure: no per-widget focus path; Horizon focus is per screen
AbstractWidget.nextFocusPath port crates/horizon-client/src/game/key_focus.rs::act focus navigation is per screen: act and gamepad::focus_step_rect answer nextFocusPath for the arrows, tab_step for Tab
AbstractWidget.isMouseOver port crates/horizon-client-render/src/screen_draw.rs::inside gap: minor: isActive is checked by the caller
AbstractWidget.narrationPriority skip:other narration only
AbstractWidget.defaultButtonNarrationText skip:other narration only
1 ActiveTextCollector.accept inline crates/horizon-client-render/src/screen_draw.rs::text default overload: left-aligned text at x,y with default parameters
31 Gui.handleKeybinds port crates/horizon-client/src/game.rs::Game::key_pressed gap: minor: the social interactions key has no port (see addSocialInteractionsToast)
32 Gui.openChatScreen port crates/horizon-client/src/game/chat.rs::Game::open_chat
33 Gui.openChatAndAddText port crates/horizon-client/src/game/chat.rs::Game::open_chat the text is passed as the initial input
34 Gui.buildInitialScreens missing port crates/horizon-client/src/title.rs::Title::next_ban_notice player: ban notices are not shown before the title screen (the services attributes and profile actions are not read); the onboarding screen is ported (title/onboarding.rs) the queue ban_notice::initial_notices fills (from Title::poll_account) is popped one notice at a time, the title last
35 Gui.addInitialScreens missing port crates/horizon-client-render/src/ban_notice.rs::initial_notices player: same as buildInitialScreens: the onboarding screen is queued first (Title::start_onboarding), no ban notice is the ban notices in vanilla's order; the accessibility onboarding is queued by Title::start_onboarding
36 Gui.canInterruptScreen missing minor: unsure: no check that stops a server-opened screen from replacing an open one was found
37 Gui.renderActiveTextDebug skip:debug debug overlay of text bounds
38 GuiGraphicsExtractor.enableScissor port crates/horizon-client-render/src/screen_draw.rs::paint gap: minor: callers push a rectangle; there is no stack, so enclosing rectangles are not intersected
83 Hud.extractTextureOverlay port crates/horizon-client-render/src/hud_overlays.rs::camera_overlays gap: player: the powder-snow freeze outline is not drawn; only the equippable camera overlay (pumpkin) is
84 Hud.extractSlot port crates/horizon-client/src/game.rs::Game::draw_slot_item
85 Hud.setNowPlaying port crates/horizon-client-render/src/hud_overlays.rs::Titles::set_overlay the animate flag gives the rainbow colour
86 Hud.onDisconnected missing port crates/horizon-client/src/game/remote.rs::Game::hud_disconnected minor: unsure: no HUD reset on disconnect found; titles clear only on the ClearTitles packet the tab list, boss bars, toasts, debug charts and titles reset; chat is left alone (ChatComponent.storeState)
87 Hud.willPrioritizeJumpInfo port crates/horizon-client/src/locator_bar.rs::ContextualBar::next the jumping input comes from Game::mount_jumping
88 Hud.HeartType.getSprite port crates/horizon-client-render/src/hud_layout.rs::heart
89 Hud.HeartType.forPlayer inline crates/horizon-client-render/src/hud_layout.rs::HealthHud::layout heart kind comes from the health inputs
90 AbstractButton.extractDefaultSprite port crates/horizon-client-render/src/screen_draw.rs::button disabled, highlighted and normal sprites
91 AbstractButton.keyPressed missing port crates/horizon-client/src/game/key_focus.rs::act minor: Enter or Space does not press a focused button; Enter only confirms a title text edit Enter, Space and keypad Enter are Nav::Select, which presses the focused target (Act::Press), as pad_menu.rs and startup_menu.rs apply it
92 AbstractContainerWidget.setFocused port crates/horizon-client-render/src/pack_screen.rs::PackScreen::set_focus gap: minor: screen-level focus only; no child-container focus
93 AbstractContainerWidget.mouseClicked port crates/horizon-client-render/src/ui.rs::Scroll::press gap: minor: child click dispatch is per screen; only the scrollbar press is here
94 AbstractScrollArea.isOverScrollbar inline crates/horizon-client-render/src/ui.rs::Scroll::press scrollbar column test folded into the press
109 AbstractSelectionList.enableScissor port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list scissor clamped to the screen
110 AbstractSelectionList.scrollToEntry port crates/horizon-client-render/src/pack_screen.rs::List::scroll_to
111 AbstractSelectionList.setFocused port crates/horizon-client-render/src/pack_screen.rs::PackScreen::set_focus gap: minor: focusing a row does not select it; vanilla selects the focused entry
112 AbstractSelectionList.nextEntry missing port crates/horizon-client/src/game/key_focus.rs::act minor: arrow keys do not move the selection between rows in the pack or server lists gap: minor: an arrow steps a Kind::Row target and the list selects the row it lands on (Title::focus_world_row); Page Up and Page Down do nothing
113 AbstractSelectionList.extractListItems port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list rows culled to the visible band
114 AbstractSelectionList.extractItem port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list selection outline and row content
115 AbstractSelectionList.extractSelection port crates/horizon-client-render/src/pack_screen.rs::PackScreen::draw_list two fills: outline colour and black inner
123 AbstractSliderButton.updateWidgetNarration skip:other narration only
124 AbstractSliderButton.extractWidgetRenderState port crates/horizon-client-render/src/ui.rs::slider_ext the whole message, value included, scrolls inside the slider (margin 2)
125 AbstractSliderButton.handleCursor port crates/horizon-client-render/src/widgets.rs::widget_cursor gap: minor: no resize cursor while dragging
126 AbstractSliderButton.setFocused missing port crates/horizon-client/src/game/key_focus.rs::slider_edit_on_focus minor: keyboard focus does not enable value changes; there is no change-value state the arrows change the value only when the mouse or Tab focused the slider, not when an arrow did
127 AbstractSliderButton.keyPressed missing port crates/horizon-client/src/game/key_focus.rs::act minor: Left and Right do not move a focused slider; Enter does not toggle it left and right nudge a focused slider once Tab or Enter let them (Act::Nudge), Enter toggles it (Act::ToggleSlider)
128 AbstractSliderButton.setValue port crates/horizon-client-render/src/options_ui.rs::set_slider gap: minor: the 0..1 clamp is done by the caller (ui.rs slider_value)
129 AbstractStringWidget.extractWidgetRenderState port crates/horizon-client-render/src/screen_draw.rs::string_widget gap: minor: hover tooltip and click cursor for styled text are not drawn
130 AbstractStringWidget.onClick missing minor: clicking a styled label with a click event does nothing here; book links and chat links do work
143 AbstractWidget.mouseClicked port crates/horizon-client/src/title.rs::Title::click gap: minor: click dispatch is per screen; the press sound is audio.rs Audio::play_button_click
144 AbstractWidget.mouseReleased port crates/horizon-client-render/src/ui.rs::Scroll::release gap: minor: only the scroll release; widget onRelease is per screen
145 AbstractWidget.mouseDragged port crates/horizon-client-render/src/ui.rs::Scroll::drag gap: minor: only scroll drag; widget onDrag is per screen
146 AbstractWidget.nextFocusPath missing port crates/horizon-client/src/game/key_focus.rs::act minor: unsure: no per-widget focus path; Horizon focus is per screen focus navigation is per screen: act and gamepad::focus_step_rect answer nextFocusPath for the arrows, tab_step for Tab
147 AbstractWidget.isMouseOver port crates/horizon-client-render/src/screen_draw.rs::inside gap: minor: isActive is checked by the caller
148 AbstractWidget.narrationPriority skip:other narration only
149 AbstractWidget.defaultButtonNarrationText skip:other narration only