ui fix scroll jumps collapsing/expanding
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user