From 1d196802bdefcf5fe7b834b4b58076312f6f5fd9 Mon Sep 17 00:00:00 2001 From: Krzosa Karol Date: Thu, 16 Jan 2025 09:44:11 +0100 Subject: [PATCH] ui fix scroll jumps collapsing/expanding --- src/wasm_app/main.c | 9 +++++---- src/wasm_app/ui.h | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/wasm_app/main.c b/src/wasm_app/main.c index 3909479..631c8af 100644 --- a/src/wasm_app/main.c +++ b/src/wasm_app/main.c @@ -130,20 +130,21 @@ fn b32 app_update(app_frame_t *frame) { f32 scroller_size = CLAMP(item_box_size / all_items_size, 0, 1.0f); f32 scrollable_space = (1 - scroller_size); - f32 scroller_percent = scroller_value * scrollable_space; + f32 scroller_norm = scroller_value / (all_items_size); + f32 scroller_percent = scroller_norm * scrollable_space; f32 scroller_second = scrollable_space - scroller_percent; ui_push_container(UI_CODE_LOC, ui_percent(0.03f), ui_percent(1)); ui_spacer(UI_CODE_LOC, ui_percent(1), ui_percent(scroller_percent)); ui_signal_t sig = ui_scroller_button(UI_CODE_LOC, ui_percent(1), ui_percent(scroller_size)); if (sig.dragging) { - scroller_value += (ev->mouse_delta.y / item_box_size * 2); + scroller_value += (ev->mouse_delta.y / item_box_size * 2) * (all_items_size); + scroller_value = CLAMP(scroller_value, 0, all_items_size); } - scroller_value = CLAMP(scroller_value, 0, 1.0f); ui_spacer(UI_CODE_LOC, ui_percent(1), ui_percent(scroller_second)); ui_pop_parent(); - item_box->view_offset.y = scroller_value * (all_items_size); + item_box->view_offset.y = scroller_value; } } } diff --git a/src/wasm_app/ui.h b/src/wasm_app/ui.h index 0830f44..558fdf7 100644 --- a/src/wasm_app/ui.h +++ b/src/wasm_app/ui.h @@ -130,7 +130,6 @@ struct ui_t { ui_id_t hot; ui_id_t active; - // STACK(ui_id_t, 256) id_stack; int indent_stack; ui_id_flags_t id_flags;