editor: update current line status properly.

put the line updation in the line inc/dec functions to be ensure.
This commit is contained in:
ChunEon Park 2014-08-02 18:15:22 +09:00
parent dfabf9d122
commit 9da55623c7
2 changed files with 17 additions and 8 deletions

View File

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

View File

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