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;
 }

-- 


Reply via email to