From da7f072365785c32e3201cd4c90f26bedd103669 Mon Sep 17 00:00:00 2001 From: Voyager Date: Tue, 25 Aug 2026 00:11:47 -0400 Subject: [PATCH] fix logbook scrolling focus --- tests/logbook_validation.gd | 3 +++ ui/logbook_page.gd | 27 --------------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/tests/logbook_validation.gd b/tests/logbook_validation.gd index daa728e..49b9459 100644 --- a/tests/logbook_validation.gd +++ b/tests/logbook_validation.gd @@ -103,6 +103,9 @@ func _validate_page() -> void: assert((page.get("_catalog_grid") as GridContainer).columns == 4) var catalog_scroll := page.get("_catalog_scroll") as ScrollContainer assert(catalog_scroll != null and catalog_scroll.follow_focus) + catalog_scroll.scroll_vertical = 37 + await create_timer(0.2).timeout + assert(catalog_scroll.scroll_vertical == 37) page.call( "_set_controller_zone", LogbookPage.ControllerZone.ENTRIES, diff --git a/ui/logbook_page.gd b/ui/logbook_page.gd index c5528e4..6319dd6 100644 --- a/ui/logbook_page.gd +++ b/ui/logbook_page.gd @@ -56,7 +56,6 @@ const COMPACT_BOOK_TOP: float = 65.0 const CATALOG_PORTRAIT_SIZE := Vector2(78.0, 36.0) const CATALOG_ENTRY_SIZE := Vector2(92.0, 92.0) const CATALOG_ROW_STEP: float = 98.0 -const CATALOG_SNAP_DELAY: float = 0.12 const DETAIL_PORTRAIT_SIZE := Vector2(160.0, 88.0) const DETAIL_SECTION_SEPARATION: int = 10 const DETAIL_QUALITY_SECTION_SIZE := Vector2(300.0, 104.0) @@ -86,8 +85,6 @@ var _detail_tween: Tween var _category_generation: int = 0 var _category_tween: Tween var _silhouette_material: ShaderMaterial -var _snapping_catalog_scroll: bool = false -var _catalog_scroll_snap_timer: Timer var _outer_margin: MarginContainer var _book: Control var _compact_presentation: bool = false @@ -475,11 +472,6 @@ func _center_scaled_content(control: Control) -> void: func _configure_catalog_scroll_bar() -> void: - _catalog_scroll_snap_timer = Timer.new() - _catalog_scroll_snap_timer.one_shot = true - _catalog_scroll_snap_timer.wait_time = CATALOG_SNAP_DELAY - _catalog_scroll_snap_timer.timeout.connect(_snap_catalog_scroll_to_row) - _catalog_scroll.add_child(_catalog_scroll_snap_timer) var scroll_bar: VScrollBar = _catalog_scroll.get_v_scroll_bar() scroll_bar.mouse_filter = Control.MOUSE_FILTER_IGNORE scroll_bar.focus_mode = Control.FOCUS_NONE @@ -525,25 +517,6 @@ func _make_scroll_indicator( func _on_catalog_scroll_value_changed(_value: float) -> void: - if _snapping_catalog_scroll: - return - _catalog_scroll_snap_timer.start() - _refresh_catalog_scroll_indicators() - - -func _snap_catalog_scroll_to_row() -> void: - var scroll_bar: VScrollBar = _catalog_scroll.get_v_scroll_bar() - var value: float = scroll_bar.value - var maximum_scroll: float = scroll_bar.max_value - scroll_bar.page - var snapped_value: float = clampf( - roundf(value / CATALOG_ROW_STEP) * CATALOG_ROW_STEP, - scroll_bar.min_value, - maximum_scroll, - ) - if not is_equal_approx(value, snapped_value): - _snapping_catalog_scroll = true - _catalog_scroll.scroll_vertical = roundi(snapped_value) - _snapping_catalog_scroll = false _refresh_catalog_scroll_indicators()