fix chunk-up/down

This commit is contained in:
Ryan Fleury
2026-07-27 14:47:35 -07:00
parent 150a2247bb
commit f247d3c52d
2 changed files with 7 additions and 2 deletions
+6 -2
View File
@@ -197,7 +197,8 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla
//- rjf: movement down (chunk)
if(need_nav && evt->delta_unit == UI_EventDeltaUnit_Word && delta.y > 0 && line_num+1 <= line_count)
{
for(U64 scan_line_num = line_num+1; scan_line_num <= line_count; scan_line_num += 1)
B32 done = 0;
for(U64 scan_line_num = line_num+1; !done && scan_line_num <= line_count; scan_line_num += 1)
{
Temp scratch = scratch_begin(&arena, 1);
Rng1U64 line_range = txt_range_from_line_num(&text_patched.line_map, scan_line_num);
@@ -206,6 +207,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla
if(line_without_whitespace.size == 0)
{
*cursor = line_range.min + (U64)(line_without_whitespace.str - line.str);
done = 1;
}
else if(scan_line_num == line_count)
{
@@ -218,7 +220,8 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla
//- rjf: movement up (chunk)
if(need_nav && evt->delta_unit == UI_EventDeltaUnit_Word && delta.y < 0 && line_num > 1)
{
for(U64 scan_line_num = line_num-1; scan_line_num > 0; scan_line_num -= 1)
B32 done = 0;
for(U64 scan_line_num = line_num-1; !done && scan_line_num > 0; scan_line_num -= 1)
{
Temp scratch = scratch_begin(&arena, 1);
Rng1U64 line_range = txt_range_from_line_num(&text_patched.line_map, scan_line_num);
@@ -227,6 +230,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla
if(line_without_whitespace.size == 0)
{
*cursor = line_range.min + (U64)(line_without_whitespace.str - line.str);
done = 1;
}
else if(scan_line_num == 1)
{
+1
View File
@@ -3088,6 +3088,7 @@ txt_artifact_create(String8 key, B32 *cancel_signal, AC_Status *status_out, U64
}
U64 line_size = dim_1u64(line_range);
shared->info.lines_ranges[lane_line_base_idxs[lane_idx()] + lane_line_idx] = line_range;
// TODO(rjf): this is a race:
shared->info.lines_max_size = Max(shared->info.lines_max_size, line_size);
lane_line_idx += 1;
line_start_idx = idx+1;