hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9da55623c7676f3d2c5531ce87cf6ded18dea378
commit 9da55623c7676f3d2c5531ce87cf6ded18dea378 Author: ChunEon Park <[email protected]> Date: Sat Aug 2 18:15:22 2014 +0900 editor: update current line status properly. put the line updation in the line inc/dec functions to be ensure. --- src/bin/edc_editor.c | 5 +++-- src/bin/redoundo.c | 20 ++++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/bin/edc_editor.c b/src/bin/edc_editor.c index aef4569..a1306d8 100644 --- a/src/bin/edc_editor.c +++ b/src/bin/edc_editor.c @@ -272,8 +272,6 @@ edit_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) if (info->change.del.content[0] == ' ') return; } - stats_line_num_update(ed->cur_line, ed->line_max); - if (!syntax_color) return; syntax_color_partial_update(ed, SYNTAX_COLOR_DEFAULT_TIME); } @@ -1300,6 +1298,8 @@ edit_line_increase(edit_data *ed, int cnt) elm_entry_entry_append(ed->en_line, buf); } elm_entry_calc_force(ed->en_line); + + stats_line_num_update(ed->cur_line, ed->line_max); } void @@ -1329,4 +1329,5 @@ edit_line_decrease(edit_data *ed, int cnt) ed->line_max -= cnt; if (ed->line_max < 1) line_init(ed); + stats_line_num_update(ed->cur_line, ed->line_max); } diff --git a/src/bin/redoundo.c b/src/bin/redoundo.c index 9aef9eb..731d8a6 100644 --- a/src/bin/redoundo.c +++ b/src/bin/redoundo.c @@ -100,7 +100,7 @@ nochange: int redoundo_undo(redoundo_data *rd, Eina_Bool *changed) { - *changed = EINA_FALSE; + if (changed) *changed = EINA_FALSE; if (!rd->last_diff) return 0; @@ -152,9 +152,13 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed) rd->last_diff = eina_list_data_get(rd->current_node); if (rd->last_diff && rd->last_diff->relative) - lines += redoundo_undo(rd, changed); + lines += redoundo_undo(rd, NULL); - *changed = EINA_TRUE; + if (changed) + { + elm_entry_calc_force(rd->entry); + *changed = EINA_TRUE; + } return lines; } @@ -162,7 +166,7 @@ redoundo_undo(redoundo_data *rd, Eina_Bool *changed) int redoundo_redo(redoundo_data *rd, Eina_Bool *changed) { - *changed = EINA_FALSE; + if (changed) *changed = EINA_FALSE; if (!rd->queue) return 0; @@ -225,9 +229,13 @@ redoundo_redo(redoundo_data *rd, Eina_Bool *changed) rd->current_node = next; if (diff->relative) - lines += redoundo_redo(rd, changed); + lines += redoundo_redo(rd, NULL); - *changed = EINA_TRUE; + if (changed) + { + elm_entry_calc_force(rd->entry); + *changed = EINA_TRUE; + } return EINA_TRUE; } --
