ui fix scroll jumps collapsing/expanding

This commit is contained in:
Krzosa Karol
2025-01-16 09:44:11 +01:00
parent 947ac4bdf1
commit 1d196802bd
2 changed files with 5 additions and 5 deletions

View File

@@ -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 scroller_size = CLAMP(item_box_size / all_items_size, 0, 1.0f);
f32 scrollable_space = (1 - scroller_size); 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; f32 scroller_second = scrollable_space - scroller_percent;
ui_push_container(UI_CODE_LOC, ui_percent(0.03f), ui_percent(1)); 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_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)); ui_signal_t sig = ui_scroller_button(UI_CODE_LOC, ui_percent(1), ui_percent(scroller_size));
if (sig.dragging) { 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_spacer(UI_CODE_LOC, ui_percent(1), ui_percent(scroller_second));
ui_pop_parent(); ui_pop_parent();
item_box->view_offset.y = scroller_value * (all_items_size); item_box->view_offset.y = scroller_value;
} }
} }
} }

View File

@@ -130,7 +130,6 @@ struct ui_t {
ui_id_t hot; ui_id_t hot;
ui_id_t active; ui_id_t active;
// STACK(ui_id_t, 256) id_stack;
int indent_stack; int indent_stack;
ui_id_flags_t id_flags; ui_id_flags_t id_flags;