mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07:00
correctly allow space keybindings; bind by default to 'accept', along with return; -> allow space for hitting buttons, expansions, etc.
This commit is contained in:
@@ -156,6 +156,7 @@ os_codepoint_from_modifiers_and_key(OS_Modifiers modifiers, OS_Key key)
|
||||
{'X', OS_Key_X, OS_Modifier_Shift},
|
||||
{'Y', OS_Key_Y, OS_Modifier_Shift},
|
||||
{'Z', OS_Key_Z, OS_Modifier_Shift},
|
||||
{' ', OS_Key_Space, 0},
|
||||
};
|
||||
|
||||
// rjf: check numeric
|
||||
|
||||
@@ -722,7 +722,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[236] =
|
||||
{ str8_lit_comp("geo3d"), str8_lit_comp("Opens a Geometry (3D) tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab},
|
||||
};
|
||||
|
||||
struct {String8 string; RD_Binding binding;} rd_default_binding_table[115] =
|
||||
struct {String8 string; RD_Binding binding;} rd_default_binding_table[116] =
|
||||
{
|
||||
{str8_lit_comp("kill_all"), {OS_Key_F5, 0 |OS_Modifier_Shift }},
|
||||
{str8_lit_comp("step_into_inst"), {OS_Key_F11, 0 |OS_Modifier_Alt}},
|
||||
@@ -775,6 +775,7 @@ struct {String8 string; RD_Binding binding;} rd_default_binding_table[115] =
|
||||
{str8_lit_comp("save_project"), {OS_Key_S, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }},
|
||||
{str8_lit_comp("edit"), {OS_Key_F2, 0 }},
|
||||
{str8_lit_comp("accept"), {OS_Key_Return, 0 }},
|
||||
{str8_lit_comp("accept"), {OS_Key_Space, 0 }},
|
||||
{str8_lit_comp("cancel"), {OS_Key_Esc, 0 }},
|
||||
{str8_lit_comp("move_left"), {OS_Key_Left, 0 }},
|
||||
{str8_lit_comp("move_right"), {OS_Key_Right, 0 }},
|
||||
|
||||
@@ -1169,6 +1169,7 @@ RD_DefaultBindingTable:
|
||||
//- rjf: meta controls
|
||||
{ "edit" F2 0 0 0 }
|
||||
{ "accept" Return 0 0 0 }
|
||||
{ "accept" Space 0 0 0 }
|
||||
{ "cancel" Esc 0 0 0 }
|
||||
|
||||
//- rjf: directional movement & text controls
|
||||
|
||||
+15
-15
@@ -2577,7 +2577,7 @@ rd_view_ui(Rng2F32 rect)
|
||||
RD_Cfg *input_root = rd_cfg_child_from_string(query_root, str8_lit("input"));
|
||||
RD_Cfg *cmd_root = rd_cfg_child_from_string(query_root, str8_lit("cmd"));
|
||||
String8 current_input = input_root->first->string;
|
||||
B32 search_row_is_open = (vs->query_is_selected);
|
||||
B32 search_row_is_open = (vs->query_is_open);
|
||||
F32 search_row_open_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "search_row_open_%p", view),
|
||||
(F32)!!search_row_is_open,
|
||||
.initial = (F32)!!search_row_is_open,
|
||||
@@ -2615,7 +2615,7 @@ rd_view_ui(Rng2F32 rect)
|
||||
}
|
||||
|
||||
//- rjf: build contents
|
||||
UI_Parent(search_row) UI_WidthFill UI_HeightFill UI_Focus(vs->query_is_selected && !vs->contents_are_focused ? UI_FocusKind_On : UI_FocusKind_Off)
|
||||
UI_Parent(search_row) UI_WidthFill UI_HeightFill UI_Focus(vs->query_is_open && !vs->contents_are_focused ? UI_FocusKind_On : UI_FocusKind_Off)
|
||||
RD_Font(cmd_kind_info->query.flags & RD_QueryFlag_CodeInput ? RD_FontSlot_Code : RD_FontSlot_Main)
|
||||
{
|
||||
if(cmd_name.size != 0)
|
||||
@@ -2659,7 +2659,7 @@ rd_view_ui(Rng2F32 rect)
|
||||
#endif
|
||||
if(ui_pressed(sig))
|
||||
{
|
||||
vs->query_is_selected = 1;
|
||||
vs->query_is_open = 1;
|
||||
rd_cmd(RD_CmdKind_FocusPanel);
|
||||
}
|
||||
}
|
||||
@@ -3015,7 +3015,7 @@ rd_view_ui(Rng2F32 rect)
|
||||
case RD_CmdKind_Search:
|
||||
case RD_CmdKind_SearchBackwards:
|
||||
{
|
||||
vs->query_is_selected = 0;
|
||||
vs->query_is_open = 0;
|
||||
}break;
|
||||
}
|
||||
}
|
||||
@@ -5439,11 +5439,11 @@ rd_view_ui(Rng2F32 rect)
|
||||
////////////////////////////
|
||||
//- rjf: catchall completion controls
|
||||
//
|
||||
if(vs->query_is_selected) UI_Focus(UI_FocusKind_On)
|
||||
if(vs->query_is_open) UI_Focus(UI_FocusKind_On)
|
||||
{
|
||||
if(ui_is_focus_active() && ui_slot_press(UI_EventActionSlot_Cancel))
|
||||
{
|
||||
vs->query_is_selected = 0;
|
||||
vs->query_is_open = 0;
|
||||
vs->query_string_size = 0;
|
||||
}
|
||||
if(ui_is_focus_active() && ui_slot_press(UI_EventActionSlot_Accept))
|
||||
@@ -7198,8 +7198,8 @@ rd_window_frame(void)
|
||||
if(size_query_by_expr_eval)
|
||||
{
|
||||
F32 search_row_open_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "search_row_open_%p", view),
|
||||
(F32)!!vs->query_is_selected,
|
||||
.initial = (F32)!!vs->query_is_selected,
|
||||
(F32)!!vs->query_is_open,
|
||||
.initial = (F32)!!vs->query_is_open,
|
||||
.epsilon = 0.01f,
|
||||
.rate = rd_state->menu_animation_rate);
|
||||
query_height_px = row_height_px * (predicted_block_tree.total_row_count - !root_is_explicit) + ui_top_px_height()*search_row_open_t;
|
||||
@@ -7443,8 +7443,8 @@ rd_window_frame(void)
|
||||
|
||||
// rjf: close queries
|
||||
if(query_floating_view_task->pressed_outside ||
|
||||
(rd_cfg_child_from_string(view, str8_lit("lister")) != &rd_nil_cfg && !vs->query_is_selected) ||
|
||||
(cmd_name.size != 0 && !vs->query_is_selected) ||
|
||||
(rd_cfg_child_from_string(view, str8_lit("lister")) != &rd_nil_cfg && !vs->query_is_open) ||
|
||||
(cmd_name.size != 0 && !vs->query_is_open) ||
|
||||
ui_slot_press(UI_EventActionSlot_Cancel))
|
||||
{
|
||||
rd_cmd(RD_CmdKind_CancelQuery);
|
||||
@@ -14957,7 +14957,7 @@ rd_frame(void)
|
||||
RD_ViewState *vs = rd_view_state_from_cfg(view);
|
||||
if(cmd_name.size != 0)
|
||||
{
|
||||
if(!vs->query_is_selected && cmd_kind_info->query.flags & RD_QueryFlag_SelectOldInput)
|
||||
if(!vs->query_is_open && cmd_kind_info->query.flags & RD_QueryFlag_SelectOldInput)
|
||||
{
|
||||
vs->query_cursor = txt_pt(1, 1+input->first->string.size);
|
||||
vs->query_mark = txt_pt(1, 1);
|
||||
@@ -14969,16 +14969,16 @@ rd_frame(void)
|
||||
}
|
||||
if(!str8_match(current_query_cmd_name, cmd_name, 0))
|
||||
{
|
||||
vs->query_is_selected = 1;
|
||||
vs->query_is_open = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
vs->query_is_selected ^= 1;
|
||||
vs->query_is_open ^= 1;
|
||||
}
|
||||
}
|
||||
if(rd_regs()->do_lister)
|
||||
{
|
||||
vs->query_is_selected = 1;
|
||||
vs->query_is_open = 1;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@@ -15013,7 +15013,7 @@ rd_frame(void)
|
||||
else if(!(cmd_kind_info->query.flags & RD_QueryFlag_KeepOldInput))
|
||||
{
|
||||
RD_ViewState *vs = rd_view_state_from_cfg(view);
|
||||
vs->query_is_selected = 0;
|
||||
vs->query_is_open = 0;
|
||||
vs->query_string_size = 0;
|
||||
}
|
||||
}break;
|
||||
|
||||
@@ -223,7 +223,7 @@ struct RD_ViewState
|
||||
void *user_data;
|
||||
|
||||
// rjf: query state
|
||||
B32 query_is_selected;
|
||||
B32 query_is_open;
|
||||
TxtPt query_cursor;
|
||||
TxtPt query_mark;
|
||||
U8 query_buffer[KB(1)];
|
||||
|
||||
@@ -161,7 +161,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla
|
||||
{
|
||||
RD_Cfg *view = rd_cfg_from_id(rd_regs()->view);
|
||||
RD_ViewState *vs = rd_view_state_from_cfg(view);
|
||||
if(!vs->query_is_selected)
|
||||
if(!vs->query_is_open)
|
||||
{
|
||||
RD_Cfg *query = rd_cfg_child_from_string_or_alloc(view, str8_lit("query"));
|
||||
RD_Cfg *input = rd_cfg_child_from_string_or_alloc(query, str8_lit("input"));
|
||||
|
||||
Reference in New Issue
Block a user