Skip to content

Commit 8bf8112

Browse files
committed
fix output view keyboard navigation/focus
1 parent 0c67406 commit 8bf8112

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/df/gfx/df_views.c

+7-6
Original file line numberDiff line numberDiff line change
@@ -4747,7 +4747,6 @@ DF_VIEW_UI_FUNCTION_DEF(Code)
47474747
F32 scroll_bar_dim = floor_f32(ui_top_font_size()*1.5f);
47484748
Vec2F32 code_area_dim = v2f32(panel_box_dim.x - scroll_bar_dim, panel_box_dim.y - scroll_bar_dim - bottom_bar_dim.y);
47494749
S64 num_possible_visible_lines = (S64)(code_area_dim.y/code_line_height)+1;
4750-
B32 is_focused = ui_is_focus_active();
47514750

47524751
//////////////////////////////
47534752
//- rjf: unpack ctrl ctx & make parse ctx
@@ -5147,7 +5146,7 @@ DF_VIEW_UI_FUNCTION_DEF(Code)
51475146
B32 snap[Axis2_COUNT] = {0};
51485147
UI_Focus(UI_FocusKind_On)
51495148
{
5150-
if(txti_buffer_is_ready && ui_is_focus_active())
5149+
if(txti_buffer_is_ready && visible_line_num_range.max >= visible_line_num_range.min && ui_is_focus_active())
51515150
{
51525151
snap[Axis2_X] = snap[Axis2_Y] = df_do_txti_controls(txti_handle, ClampBot(num_possible_visible_lines, 10) - 10, &tv->cursor, &tv->mark, &tv->preferred_column);
51535152
}
@@ -6694,7 +6693,6 @@ DF_VIEW_UI_FUNCTION_DEF(Output)
66946693
F32 scroll_bar_dim = floor_f32(ui_top_font_size()*1.5f);
66956694
Vec2F32 code_area_dim = v2f32(panel_box_dim.x - scroll_bar_dim, panel_box_dim.y - scroll_bar_dim - bottom_bar_dim.y);
66966695
S64 num_possible_visible_lines = (S64)(code_area_dim.y/code_line_height)+1;
6697-
B32 is_focused = ui_is_focus_active();
66986696

66996697
//////////////////////////////
67006698
//- rjf: unpack ctrl ctx & make parse ctx
@@ -6990,9 +6988,12 @@ DF_VIEW_UI_FUNCTION_DEF(Output)
69906988
//- rjf: do keyboard interaction
69916989
//
69926990
B32 snap[Axis2_COUNT] = {0};
6993-
if(txti_buffer_is_ready && is_focused && visible_line_num_range.max > visible_line_num_range.min)
6991+
UI_Focus(UI_FocusKind_On)
69946992
{
6995-
snap[Axis2_X] = snap[Axis2_Y] = df_do_txti_controls(txti_handle, ClampBot(visible_line_count, 10) - 10, &tv->cursor, &tv->mark, &tv->preferred_column);
6993+
if(txti_buffer_is_ready && visible_line_num_range.max >= visible_line_num_range.min && ui_is_focus_active())
6994+
{
6995+
snap[Axis2_X] = snap[Axis2_Y] = df_do_txti_controls(txti_handle, ClampBot(visible_line_count, 10) - 10, &tv->cursor, &tv->mark, &tv->preferred_column);
6996+
}
69966997
}
69976998

69986999
//////////////////////////////
@@ -7006,7 +7007,7 @@ DF_VIEW_UI_FUNCTION_DEF(Output)
70067007

70077008
//- rjf: build code slice
70087009
DF_CodeSliceSignal sig = {0};
7009-
UI_Focus(is_focused ? UI_FocusKind_On : UI_FocusKind_Off)
7010+
UI_Focus(UI_FocusKind_On)
70107011
{
70117012
sig = df_code_slicef(ws, &ctrl_ctx, &parse_ctx, &code_slice_params, &tv->cursor, &tv->mark, &tv->preferred_column, "txt_view_%p", view);
70127013
}

0 commit comments

Comments
 (0)