parameterize find-code-location by forcing-focus to destination panel; use that in 'switch' command

This commit is contained in:
Ryan Fleury
2025-05-09 12:22:27 -07:00
parent 719e8ce179
commit 2c58b81dde
4 changed files with 12 additions and 3 deletions
+2 -1
View File
@@ -435,7 +435,7 @@ RD_NameSchemaInfo rd_name_schema_info_table[24] =
{str8_lit_comp("thread"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}")},
};
Rng1U64 rd_reg_slot_range_table[43] =
Rng1U64 rd_reg_slot_range_table[44] =
{
{0},
{OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(CTRL_Handle)},
@@ -470,6 +470,7 @@ Rng1U64 rd_reg_slot_range_table[43] =
{OffsetOf(RD_Regs, reg_slot), OffsetOf(RD_Regs, reg_slot) + sizeof(RD_RegSlot)},
{OffsetOf(RD_Regs, pid), OffsetOf(RD_Regs, pid) + sizeof(U32)},
{OffsetOf(RD_Regs, force_confirm), OffsetOf(RD_Regs, force_confirm) + sizeof(B32)},
{OffsetOf(RD_Regs, force_focus), OffsetOf(RD_Regs, force_focus) + sizeof(B32)},
{OffsetOf(RD_Regs, prefer_disasm), OffsetOf(RD_Regs, prefer_disasm) + sizeof(B32)},
{OffsetOf(RD_Regs, no_rich_tooltip), OffsetOf(RD_Regs, no_rich_tooltip) + sizeof(B32)},
{OffsetOf(RD_Regs, do_implicit_root), OffsetOf(RD_Regs, do_implicit_root) + sizeof(B32)},
+4 -1
View File
@@ -41,6 +41,7 @@ RD_RegSlot_OffPx,
RD_RegSlot_RegSlot,
RD_RegSlot_PID,
RD_RegSlot_ForceConfirm,
RD_RegSlot_ForceFocus,
RD_RegSlot_PreferDisasm,
RD_RegSlot_NoRichTooltip,
RD_RegSlot_DoImplicitRoot,
@@ -463,6 +464,7 @@ Vec2F32 off_px;
RD_RegSlot reg_slot;
U32 pid;
B32 force_confirm;
B32 force_focus;
B32 prefer_disasm;
B32 no_rich_tooltip;
B32 do_implicit_root;
@@ -556,6 +558,7 @@ Z(getting_started)\
.reg_slot = rd_regs()->reg_slot,\
.pid = rd_regs()->pid,\
.force_confirm = rd_regs()->force_confirm,\
.force_focus = rd_regs()->force_focus,\
.prefer_disasm = rd_regs()->prefer_disasm,\
.no_rich_tooltip = rd_regs()->no_rich_tooltip,\
.do_implicit_root = rd_regs()->do_implicit_root,\
@@ -572,7 +575,7 @@ extern String8 rd_tab_fast_path_view_name_table[24];
extern String8 rd_tab_fast_path_query_name_table[24];
extern RD_VocabInfo rd_vocab_info_table[343];
extern RD_NameSchemaInfo rd_name_schema_info_table[24];
extern Rng1U64 rd_reg_slot_range_table[43];
extern Rng1U64 rd_reg_slot_range_table[44];
extern String8 rd_binding_version_remap_old_name_table[8];
extern String8 rd_binding_version_remap_new_name_table[8];
extern String8 rd_icon_kind_text_table[75];
+1
View File
@@ -732,6 +732,7 @@ RD_RegTable:
// rjf: general parameters
{U32 pid PID }
{B32 force_confirm ForceConfirm }
{B32 force_focus ForceFocus }
{B32 prefer_disasm PreferDisasm }
{B32 no_rich_tooltip NoRichTooltip }
{B32 do_implicit_root DoImplicitRoot}
+5 -1
View File
@@ -13923,7 +13923,7 @@ rd_frame(void)
RD_Cfg *recent_file = rd_cfg_from_id(rd_regs()->cfg);
RD_Cfg *path_root = rd_cfg_child_from_string(recent_file, str8_lit("path"));
String8 path = path_root->first->string;
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0);
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1);
}break;
case RD_CmdKind_SwitchToPartnerFile:
{
@@ -14842,6 +14842,10 @@ rd_frame(void)
.view = dst_tab->id,
.tab = dst_tab->id)
{
if(rd_regs()->force_focus)
{
rd_cmd(RD_CmdKind_FocusPanel);
}
rd_cmd(RD_CmdKind_FocusTab);
if(point.line != 0)
{