[elm_code] don't strip whitespace on current line

When saving if any widget has a cursor on the line
we shouldn't strip the trailing whitespace
This commit is contained in:
Andy Williams 2015-08-29 14:11:40 +01:00
parent 20162692f0
commit 9f96fa0c00
3 changed files with 25 additions and 1 deletions

View File

@ -178,7 +178,8 @@ EAPI void elm_code_file_save(Elm_Code_File *file)
EINA_LIST_FOREACH(file->lines, item, line_item)
{
elm_code_line_text_trailing_whitespace_strip(line_item);
if (!elm_code_line_contains_widget_cursor(line_item))
elm_code_line_text_trailing_whitespace_strip(line_item);
content = elm_code_line_text_get(line_item, &length);
fwrite(content, sizeof(char), length, out);

View File

@ -106,3 +106,24 @@ EAPI void elm_code_line_status_clear(Elm_Code_Line *line)
}
}
EAPI Eina_Bool
elm_code_line_contains_widget_cursor(Elm_Code_Line *line)
{
Elm_Code *code = line->file->parent;
Eina_List *item;
Eo *widget;
unsigned int col, number;
if (!code)
return EINA_FALSE;
EINA_LIST_FOREACH(code->widgets, item, widget)
{
elm_code_widget_cursor_position_get(widget, &col, &number);
if (number == line->number)
return EINA_TRUE;
}
return EINA_FALSE;
}

View File

@ -69,6 +69,8 @@ EAPI void elm_code_line_token_add(Elm_Code_Line *line, int start, int end, int l
EAPI void elm_code_line_tokens_clear(Elm_Code_Line *line);
EAPI Eina_Bool elm_code_line_contains_widget_cursor(Elm_Code_Line *line);
/**
* @}
*/