bug fixing
This commit is contained in:
parent
75b56c94c3
commit
c8fcd07d16
|
@ -10,25 +10,19 @@
|
||||||
|
|
||||||
inline float
|
inline float
|
||||||
get_view_y(View_Summary view){
|
get_view_y(View_Summary view){
|
||||||
float y;
|
float y = view.cursor.wrapped_y;
|
||||||
if (view.unwrapped_lines){
|
if (view.unwrapped_lines){
|
||||||
y = view.cursor.unwrapped_y;
|
y = view.cursor.unwrapped_y;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
y = view.cursor.wrapped_y;
|
|
||||||
}
|
|
||||||
return(y);
|
return(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float
|
inline float
|
||||||
get_view_x(View_Summary view){
|
get_view_x(View_Summary view){
|
||||||
float x;
|
float x = view.cursor.wrapped_x;
|
||||||
if (view.unwrapped_lines){
|
if (view.unwrapped_lines){
|
||||||
x = view.cursor.unwrapped_x;
|
x = view.cursor.unwrapped_x;
|
||||||
}
|
}
|
||||||
else{
|
|
||||||
x = view.cursor.wrapped_x;
|
|
||||||
}
|
|
||||||
return(x);
|
return(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -852,23 +846,22 @@ isearch(Application_Links *app, int start_reversed){
|
||||||
|
|
||||||
if (app->start_query_bar(app, &bar, 0) == 0) return;
|
if (app->start_query_bar(app, &bar, 0) == 0) return;
|
||||||
|
|
||||||
Range match;
|
|
||||||
int reverse = start_reversed;
|
int reverse = start_reversed;
|
||||||
int pos;
|
int pos = view.cursor.pos;
|
||||||
|
Range match = make_range(pos, pos);
|
||||||
pos = view.cursor.pos;
|
|
||||||
match = make_range(pos, pos);
|
|
||||||
|
|
||||||
char bar_string_space[256];
|
char bar_string_space[256];
|
||||||
bar.string = make_fixed_width_string(bar_string_space);
|
bar.string = make_fixed_width_string(bar_string_space);
|
||||||
|
|
||||||
String isearch = make_lit_string("I-Search: ");
|
String isearch_str = make_lit_string("I-Search: ");
|
||||||
String rsearch = make_lit_string("Reverse-I-Search: ");
|
String rsearch_str = make_lit_string("Reverse-I-Search: ");
|
||||||
|
|
||||||
|
for (;;){
|
||||||
|
app->view_set_highlight(app, &view, match.start, match.end, 1);
|
||||||
|
|
||||||
while (1){
|
|
||||||
// NOTE(allen): Change the bar's prompt to match the current direction.
|
// NOTE(allen): Change the bar's prompt to match the current direction.
|
||||||
if (reverse) bar.prompt = rsearch;
|
if (reverse) bar.prompt = rsearch_str;
|
||||||
else bar.prompt = isearch;
|
else bar.prompt = isearch_str;
|
||||||
|
|
||||||
in = app->get_user_input(app, EventOnAnyKey, EventOnEsc | EventOnButton);
|
in = app->get_user_input(app, EventOnAnyKey, EventOnEsc | EventOnButton);
|
||||||
if (in.abort) break;
|
if (in.abort) break;
|
||||||
|
@ -952,8 +945,6 @@ isearch(Application_Links *app, int start_reversed){
|
||||||
match.end = match.start + bar.string.size;
|
match.end = match.start + bar.string.size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
app->view_set_highlight(app, &view, match.start, match.end, 1);
|
|
||||||
}
|
}
|
||||||
app->view_set_highlight(app, &view, 0, 0, 0);
|
app->view_set_highlight(app, &view, 0, 0, 0);
|
||||||
if (in.abort) return;
|
if (in.abort) return;
|
||||||
|
@ -1053,7 +1044,10 @@ CUSTOM_COMMAND_SIG(query_replace){
|
||||||
in = app->get_user_input(app, EventOnAnyKey, EventOnButton);
|
in = app->get_user_input(app, EventOnAnyKey, EventOnButton);
|
||||||
if (in.abort || in.key.keycode == key_esc || !key_is_unmodified(&in.key)) break;
|
if (in.abort || in.key.keycode == key_esc || !key_is_unmodified(&in.key)) break;
|
||||||
|
|
||||||
if (in.key.character == 'y' || in.key.character == 'Y' || in.key.character == '\n' || in.key.character == '\t'){
|
if (in.key.character == 'y' ||
|
||||||
|
in.key.character == 'Y' ||
|
||||||
|
in.key.character == '\n' ||
|
||||||
|
in.key.character == '\t'){
|
||||||
app->buffer_replace_range(app, &buffer, match.min, match.max, w.str, w.size);
|
app->buffer_replace_range(app, &buffer, match.min, match.max, w.str, w.size);
|
||||||
pos = match.start + w.size;
|
pos = match.start + w.size;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1583,7 +1583,7 @@ view_move_cursor_to_view(View *view, GUI_Scroll_Vars scroll){
|
||||||
i32 line_height = view->line_height;
|
i32 line_height = view->line_height;
|
||||||
f32 old_cursor_y = view_get_cursor_y(view);
|
f32 old_cursor_y = view_get_cursor_y(view);
|
||||||
f32 cursor_y = old_cursor_y;
|
f32 cursor_y = old_cursor_y;
|
||||||
f32 target_y = scroll.target_y;
|
f32 target_y = scroll.target_y + view->widget_height;
|
||||||
|
|
||||||
Cursor_Limits limits = view_cursor_limits(view);
|
Cursor_Limits limits = view_cursor_limits(view);
|
||||||
|
|
||||||
|
@ -3076,8 +3076,10 @@ remeasure_file_view(System_Functions *system, View *view){
|
||||||
if (file_is_ready(view->file_data.file)){
|
if (file_is_ready(view->file_data.file)){
|
||||||
Relative_Scrolling relative = view_get_relative_scrolling(view);
|
Relative_Scrolling relative = view_get_relative_scrolling(view);
|
||||||
view_measure_wraps(&view->persistent.models->mem.general, view);
|
view_measure_wraps(&view->persistent.models->mem.general, view);
|
||||||
|
if (view->file_data.show_temp_highlight == 0){
|
||||||
view_cursor_move(view, view->recent->cursor.pos);
|
view_cursor_move(view, view->recent->cursor.pos);
|
||||||
view->recent->preferred_x = view_get_cursor_x(view);
|
view->recent->preferred_x = view_get_cursor_x(view);
|
||||||
|
}
|
||||||
view_set_relative_scrolling(view, relative);
|
view_set_relative_scrolling(view, relative);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5345,8 +5347,8 @@ draw_file_loaded(View *view, i32_Rect rect, b32 is_active, Render_Target *target
|
||||||
float *advance_data = 0;
|
float *advance_data = 0;
|
||||||
if (font) advance_data = font->advance_data;
|
if (font) advance_data = font->advance_data;
|
||||||
|
|
||||||
i32 count;
|
i32 count = 0;
|
||||||
Full_Cursor render_cursor;
|
Full_Cursor render_cursor = {0};
|
||||||
Buffer_Render_Options opts = {};
|
Buffer_Render_Options opts = {};
|
||||||
|
|
||||||
f32 *wraps = view->file_data.line_wrap_y;
|
f32 *wraps = view->file_data.line_wrap_y;
|
||||||
|
@ -5377,8 +5379,8 @@ draw_file_loaded(View *view, i32_Rect rect, b32 is_active, Render_Target *target
|
||||||
|
|
||||||
Assert(count > 0);
|
Assert(count > 0);
|
||||||
|
|
||||||
i32 cursor_begin, cursor_end;
|
i32 cursor_begin = 0, cursor_end = 0;
|
||||||
u32 cursor_color, at_cursor_color;
|
u32 cursor_color = 0, at_cursor_color = 0;
|
||||||
if (view->file_data.show_temp_highlight){
|
if (view->file_data.show_temp_highlight){
|
||||||
cursor_begin = view->file_data.temp_highlight.pos;
|
cursor_begin = view->file_data.temp_highlight.pos;
|
||||||
cursor_end = view->file_data.temp_highlight_end_pos;
|
cursor_end = view->file_data.temp_highlight_end_pos;
|
||||||
|
@ -5437,13 +5439,8 @@ draw_file_loaded(View *view, i32_Rect rect, b32 is_active, Render_Target *target
|
||||||
u32 char_color = main_color;
|
u32 char_color = main_color;
|
||||||
if (item->flags & BRFlag_Special_Character) char_color = special_color;
|
if (item->flags & BRFlag_Special_Character) char_color = special_color;
|
||||||
|
|
||||||
#if 0
|
|
||||||
i32_Rect char_rect = i32R(item->x0, item->y0,
|
|
||||||
item->x1, item->y1);
|
|
||||||
#else
|
|
||||||
f32_Rect char_rect = f32R(item->x0, item->y0,
|
f32_Rect char_rect = f32R(item->x0, item->y0,
|
||||||
item->x1, item->y1);
|
item->x1, item->y1);
|
||||||
#endif
|
|
||||||
|
|
||||||
if (view->file_data.show_whitespace && highlight_color == 0 &&
|
if (view->file_data.show_whitespace && highlight_color == 0 &&
|
||||||
char_is_whitespace((char)item->glyphid)){
|
char_is_whitespace((char)item->glyphid)){
|
||||||
|
|
|
@ -1080,6 +1080,9 @@ buffer_cursor_from_pos(Buffer_Type *buffer, int pos, float *wraps,
|
||||||
Full_Cursor result;
|
Full_Cursor result;
|
||||||
int line_index;
|
int line_index;
|
||||||
|
|
||||||
|
if (pos > buffer->size) pos = buffer->size;
|
||||||
|
if (pos < 0) pos = 0;
|
||||||
|
|
||||||
line_index = buffer_get_line_index_range(buffer, pos, 0, buffer->line_count);
|
line_index = buffer_get_line_index_range(buffer, pos, 0, buffer->line_count);
|
||||||
result = make_cursor_hint(line_index, buffer->line_starts, wraps, font_height);
|
result = make_cursor_hint(line_index, buffer->line_starts, wraps, font_height);
|
||||||
result = buffer_cursor_seek(buffer, seek_pos(pos), max_width, font_height,
|
result = buffer_cursor_seek(buffer, seek_pos(pos), max_width, font_height,
|
||||||
|
|
Loading…
Reference in New Issue