ajwillia-ms pushed a commit to branch master.

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

commit fcdf4e9d10a5b48117ce1ee4669a4c57db6d8052
Author: Andy Williams <[email protected]>
Date:   Thu Dec 14 08:55:01 2017 +0000

    elm_code: Correct tooltip behaviour for elm_cde_widget
---
 src/lib/elementary/elm_code_widget.c | 35 +++++++++++++++++++++++++++++------
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/lib/elementary/elm_code_widget.c 
b/src/lib/elementary/elm_code_widget.c
index fd9e781984..2f9b693322 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -1024,6 +1024,29 @@ _mouse_selection_paste_at_position(Elm_Code_Widget 
*widget,
    free(text);
 }
 
+static Evas_Object *
+_elm_code_widget_tooltip_cb(void *data, Evas_Object *obj EINA_UNUSED, 
Evas_Object *tooltip)
+{
+   Evas_Object *label;
+
+   if (!data)
+     return NULL;
+
+   label = elm_label_add(tooltip);
+   elm_object_text_set(label, (Eina_Stringshare *)data);
+   return label;
+}
+
+static void
+_elm_code_widget_tooltip_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
+                                void *event_info EINA_UNUSED)
+{
+   if (!data)
+     return;
+
+   eina_stringshare_del((Eina_Stringshare *)data);
+}
+
 static void
 _elm_code_widget_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
                                void *event_info)
@@ -1099,12 +1122,13 @@ _elm_code_widget_mouse_move_cb(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj
    if (!pd->editable || !event->buttons)
      {
         Elm_Code_Line *line;
+        Eina_Stringshare *text = NULL;
 
         line = elm_code_file_line_get(elm_code_widget_code_get(widget)->file, 
row);
-        if (line)
-          elm_object_tooltip_text_set(widget, line->status_text);
-        else
-          elm_object_tooltip_text_set(widget, NULL);
+        if (line && line->status_text)
+          text = eina_stringshare_add(line->status_text);
+        elm_object_tooltip_content_cb_set(pd->gridbox, 
_elm_code_widget_tooltip_cb,
+                                          text, 
_elm_code_widget_tooltip_del_cb);
 
         return;
      }
@@ -2253,6 +2277,7 @@ _elm_code_widget_efl_canvas_group_group_add(Eo *obj, 
Elm_Code_Widget_Data *pd)
    if (!elm_widget_theme_klass_get(obj))
      elm_widget_theme_klass_set(obj, "code");
    elm_widget_theme_element_set(obj, "layout");
+   _elm_code_widget_elm_widget_theme_apply(obj, pd);
 
    efl_canvas_group_add(efl_super(obj, ELM_CODE_WIDGET_CLASS));
    elm_object_focus_allow_set(obj, EINA_TRUE);
@@ -2283,8 +2308,6 @@ _elm_code_widget_efl_canvas_group_group_add(Eo *obj, 
Elm_Code_Widget_Data *pd)
    elm_object_content_set(scroller, gridrows);
    pd->gridbox = gridrows;
 
-   _elm_code_widget_elm_widget_theme_apply(obj, 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);

-- 


Reply via email to