don't assume offset evaluation mode in array dereferences; could apply to type info too, thus null mode; fix visualizer drag/drop causing close of hover eval, invalidating the dragged view too early; fix close-window not exiting if last window

This commit is contained in:
Ryan Fleury
2025-03-13 08:30:16 -07:00
parent 74ce085adc
commit d10547d2c0
2 changed files with 10 additions and 3 deletions
-1
View File
@@ -787,7 +787,6 @@ E_LOOKUP_ACCESS_FUNCTION_DEF(default)
// rjf: ops to compute the final address
new_tree = e_irtree_binary_op_u(arena, RDI_EvalOp_Add, offset_tree, base_tree);
mode = E_Mode_Offset;
}
}
+10 -2
View File
@@ -8374,7 +8374,7 @@ rd_window_frame(void)
//
ProfScope("build hover eval")
{
B32 build_hover_eval = hover_eval_is_open && !rd_drag_is_active();
B32 build_hover_eval = hover_eval_is_open && (!rd_drag_is_active() || rd_state->drag_drop_regs_slot == RD_RegSlot_View);
// rjf: disable hover eval if hovered view is actively scrolling
if(hover_eval_is_open)
@@ -14022,8 +14022,16 @@ rd_frame(void)
}break;
case RD_CmdKind_CloseWindow:
{
RD_CfgList all_windows = rd_cfg_top_level_list_from_string(scratch.arena, str8_lit("window"));
RD_Cfg *wcfg = rd_cfg_from_id(rd_regs()->window);
rd_cfg_release(wcfg);
if(all_windows.count == 1 && all_windows.first->v == wcfg)
{
rd_cmd(RD_CmdKind_Exit);
}
else
{
rd_cfg_release(wcfg);
}
}break;
case RD_CmdKind_ToggleFullscreen:
{