diff --git a/4ed_edit.cpp b/4ed_edit.cpp index 3f497570..098eabc5 100644 --- a/4ed_edit.cpp +++ b/4ed_edit.cpp @@ -154,7 +154,7 @@ edit_fix_markers(Models *models, Editing_File *file, Edit edit){ i64 cursor_pos = cursors[cursor_count++].pos; view->mark = cursors[cursor_count++].pos; File_Edit_Positions edit_pos = view_get_edit_pos(view); - view_set_cursor_and_scroll(models, view, cursor_pos, true, edit_pos.scroll); + view_set_cursor_and_scroll(models, view, cursor_pos, edit_pos.scroll); } } diff --git a/4ed_view.cpp b/4ed_view.cpp index 6c3fda4c..91bec1cb 100644 --- a/4ed_view.cpp +++ b/4ed_view.cpp @@ -347,10 +347,12 @@ view_set_scroll(Models *models, View *view, Buffer_Scroll scroll){ } internal void -view_set_cursor_and_scroll(Models *models, View *view, i64 pos, b32 set_preferred_x, Buffer_Scroll scroll){ +view_set_cursor_and_scroll(Models *models, View *view, i64 pos, Buffer_Scroll scroll){ File_Edit_Positions edit_pos = view_get_edit_pos(view); file_edit_positions_set_cursor(&edit_pos, pos); - view->preferred_x = 0.f; + Buffer_Cursor cursor = view_compute_cursor(view, seek_pos(pos)); + Vec2_f32 p = view_relative_xy_of_pos(models, view, cursor.line, pos); + view->preferred_x = p.x; file_edit_positions_set_scroll(&edit_pos, scroll); edit_pos.last_set_type = EditPos_None; view_set_edit_pos(view, edit_pos); diff --git a/custom/4coder_base_commands.cpp b/custom/4coder_base_commands.cpp index ac4eeaa1..d81d1118 100644 --- a/custom/4coder_base_commands.cpp +++ b/custom/4coder_base_commands.cpp @@ -5,7 +5,7 @@ moving the cursor, which work even without the default 4coder framework. // TOP -static void +function void write_character_parameter(Application_Links *app, u8 *character, u32 length){ if (length != 0){ View_ID view = get_active_view(app, AccessOpen);