netstar pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e63e2d7e21df13520cca1b05437e556b3fd6624f

commit e63e2d7e21df13520cca1b05437e556b3fd6624f
Author: Al Poole <nets...@gmail.com>
Date:   Thu Nov 9 00:38:51 2017 +0000

    elm_code_widget: keep track of visibility.
    
    Keep track of visibility and ensure the cursor can never be
    filled when hidden. This should finally end any issue with the
    cursor and visibility with the new focus system. Didn't see this
    previously until working on Edi's bottom panes which caused redraw
    on resize of the widgets.
    
    @fix
---
 src/lib/elementary/elm_code_widget.c         | 4 +++-
 src/lib/elementary/elm_code_widget_private.h | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_code_widget.c 
b/src/lib/elementary/elm_code_widget.c
index 1ce0ffa99c..fc20eac6ec 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -270,7 +270,7 @@ _elm_code_widget_fill_cursor(Elm_Code_Widget *widget, 
unsigned int number, int g
 
    pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
-   if (pd->editable && pd->focussed && pd->cursor_line == number)
+   if (pd->visible && pd->editable && pd->focussed && pd->cursor_line == 
number)
      {
         if (pd->cursor_col + gutter - 1 >= (unsigned int) w)
           return;
@@ -564,6 +564,7 @@ _elm_code_widget_show_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_
 
    pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
+   pd->visible = EINA_TRUE;
    if (pd->cursor_rect)
      evas_object_show(pd->cursor_rect);
 }
@@ -577,6 +578,7 @@ _elm_code_widget_hidden_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EIN
 
    pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
+   pd->visible = EINA_FALSE;
    if (pd->cursor_rect)
      evas_object_hide(pd->cursor_rect);
 }
diff --git a/src/lib/elementary/elm_code_widget_private.h 
b/src/lib/elementary/elm_code_widget_private.h
index d9e071c246..4e050a799b 100644
--- a/src/lib/elementary/elm_code_widget_private.h
+++ b/src/lib/elementary/elm_code_widget_private.h
@@ -24,7 +24,7 @@ typedef struct
    unsigned int cursor_line, cursor_col;
    Evas_Object *cursor_rect;
 
-   Eina_Bool editable, focussed;
+   Eina_Bool visible, editable, focussed;
    Eina_Bool show_line_numbers;
    unsigned int line_width_marker, tabstop;
    Eina_Bool show_whitespace, tab_inserts_spaces;

-- 


Reply via email to