netstar pushed a commit to branch master.

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

commit e663e4d00921acb12758d88b8effccb4ec900a00
Author: Al Poole <nets...@gmail.com>
Date:   Thu Oct 26 22:39:21 2017 +0100

    elm_code: hide cursor if we hide the widget.
    
    The cursor isn't clipped so if we decide to hide the widget
    this ensures the cursor also is hidden. This should not affect
    any existing application using elm_code API.
---
 src/lib/elementary/elm_code_widget.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/src/lib/elementary/elm_code_widget.c 
b/src/lib/elementary/elm_code_widget.c
index a99eba1aca..175bc86ce4 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -557,6 +557,32 @@ _elm_code_widget_resize_cb(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EIN
 }
 
 static void
+_elm_code_widget_show_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
+                           void *event_info EINA_UNUSED)
+{
+   Elm_Code_Widget_Data *pd;
+   Elm_Code_Widget *widget = (Elm_Code_Widget *) data;
+
+   pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
+
+   if (pd->cursor_rect)
+     evas_object_show(pd->cursor_rect);
+}
+
+static void
+_elm_code_widget_hidden_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
+                           void *event_info EINA_UNUSED)
+{
+   Elm_Code_Widget_Data *pd;
+   Elm_Code_Widget *widget = (Elm_Code_Widget *) data;
+
+   pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
+
+   if (pd->cursor_rect)
+     evas_object_hide(pd->cursor_rect);
+}
+
+static void
 _elm_code_widget_cursor_ensure_visible(Elm_Code_Widget *widget)
 {
    Evas_Coord viewx, viewy, vieww, viewh, cellw = 0, cellh = 0;
@@ -2182,6 +2208,8 @@ _elm_code_widget_efl_canvas_group_group_add(Eo *obj, 
Elm_Code_Widget_Data *pd)
 
    evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, 
_elm_code_widget_resize_cb, obj);
    evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, 
_elm_code_widget_key_down_cb, obj);
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, 
_elm_code_widget_hidden_cb, obj);
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, 
_elm_code_widget_show_cb, obj);
 
    evas_object_smart_callback_add(obj, "focused", 
_elm_code_widget_focused_event_cb, obj);
    evas_object_smart_callback_add(obj, "unfocused", 
_elm_code_widget_unfocused_event_cb, obj);

-- 


Reply via email to