From 8dd334d75426c6465fc90102442e23a4c3316f44 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 21 Apr 2025 11:37:10 -0700 Subject: [PATCH] fix row key uniqueness of chained expansions, fix initial edit strings for value editing --- src/eval_visualization/eval_visualization_core.c | 6 ++++-- src/raddbg/raddbg_core.c | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index 688cbe80..e68be0fd 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -546,6 +546,7 @@ ev_block_tree_from_expr(Arena *arena, EV_View *view, String8 filter, E_Expr *exp U64 child_id; U64 split_relative_idx; B32 default_expanded; + B32 force_expanded; }; Task start_task = {0, tree.root, tree.root->eval, 1, 0}; Task *first_task = &start_task; @@ -560,7 +561,7 @@ ev_block_tree_from_expr(Arena *arena, EV_View *view, String8 filter, E_Expr *exp // rjf: obtain expansion node & expansion state EV_ExpandNode *expand_node = ev_expand_node_from_key(view, key); B32 is_expanded = (expand_node != 0 && expand_node->expanded); - if(t->default_expanded) + if(t->default_expanded || t->force_expanded) { is_expanded ^= 1; } @@ -726,9 +727,10 @@ ev_block_tree_from_expr(Arena *arena, EV_View *view, String8 filter, E_Expr *exp t->next = task; task->parent_block = t->parent_block; task->eval = e_eval_from_expr(arena, t->eval.expr->next); - task->child_id = t->child_id; + task->child_id = t->child_id + 1; task->split_relative_idx = 0; task->default_expanded = t->default_expanded; + task->force_expanded = 1; } } scratch_end(scratch); diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 940ce350..f6998517 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -3100,6 +3100,10 @@ rd_view_ui(Rng2F32 rect) { any_edits_started = 1; String8 string = cell->edit_string; + if(string.size == 0) + { + string = dr_string_from_fstrs(scratch.arena, &cell_info.fstrs); + } string.size = Min(string.size, sizeof(ewv->dummy_text_edit_state.input_buffer)); RD_WatchPt pt = {row->block->key, row->key, rd_id_from_watch_cell(cell)}; U64 hash = ev_hash_from_key(pt.key);