From eeb25519b3b56094aa889d99a15dbe17f8f61786 Mon Sep 17 00:00:00 2001 From: Al Poole Date: Sat, 21 Oct 2017 01:28:06 +0100 Subject: [PATCH] elm_code_widget: make sure the widget is cleared properly. This ensures the widget is clearer if the file has been cleared. @fix T6185 --- src/lib/elementary/elm_code_widget.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_code_widget.c b/src/lib/elementary/elm_code_widget.c index aa160f803f..a99eba1aca 100644 --- a/src/lib/elementary/elm_code_widget.c +++ b/src/lib/elementary/elm_code_widget.c @@ -462,6 +462,19 @@ _elm_code_widget_refresh(Elm_Code_Widget *widget, Elm_Code_Line *line) _elm_code_widget_fill_update(widget, first_row, last_row, line); } +static void +_elm_code_widget_clear(Elm_Code_Widget *widget) +{ + Elm_Code_Widget_Data *pd; + Evas_Object *grid; + + pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); + EINA_LIST_FREE(pd->grids, grid) + { + evas_object_del(grid); + } +} + static void _elm_code_widget_fill(Elm_Code_Widget *widget) { @@ -492,10 +505,16 @@ static void _elm_code_widget_file_cb(void *data, const Efl_Event *event EINA_UNUSED) { Elm_Code_Widget *widget; + Elm_Code_Widget_Data *pd; widget = (Elm_Code_Widget *)data; - _elm_code_widget_fill(widget); + pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); + + if (elm_code_file_lines_get(pd->code->file)) + _elm_code_widget_fill(widget); + else + _elm_code_widget_clear(widget); } static void