diff options
author | Al Poole <netstar@gmail.com> | 2017-10-26 22:39:21 +0100 |
---|---|---|
committer | Al Poole <netstar@gmail.com> | 2017-10-26 22:39:21 +0100 |
commit | e663e4d00921acb12758d88b8effccb4ec900a00 (patch) | |
tree | 6b61ec6aa299fbb4d17167c037dcbadbccb06ccb /src/lib/elementary | |
parent | 84907e719de3b4700e5c2390b251b3b1d8e9437d (diff) |
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.
Diffstat (limited to 'src/lib/elementary')
-rw-r--r-- | src/lib/elementary/elm_code_widget.c | 28 |
1 files changed, 28 insertions, 0 deletions
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 | |||
557 | } | 557 | } |
558 | 558 | ||
559 | static void | 559 | static void |
560 | _elm_code_widget_show_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, | ||
561 | void *event_info EINA_UNUSED) | ||
562 | { | ||
563 | Elm_Code_Widget_Data *pd; | ||
564 | Elm_Code_Widget *widget = (Elm_Code_Widget *) data; | ||
565 | |||
566 | pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); | ||
567 | |||
568 | if (pd->cursor_rect) | ||
569 | evas_object_show(pd->cursor_rect); | ||
570 | } | ||
571 | |||
572 | static void | ||
573 | _elm_code_widget_hidden_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, | ||
574 | void *event_info EINA_UNUSED) | ||
575 | { | ||
576 | Elm_Code_Widget_Data *pd; | ||
577 | Elm_Code_Widget *widget = (Elm_Code_Widget *) data; | ||
578 | |||
579 | pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); | ||
580 | |||
581 | if (pd->cursor_rect) | ||
582 | evas_object_hide(pd->cursor_rect); | ||
583 | } | ||
584 | |||
585 | static void | ||
560 | _elm_code_widget_cursor_ensure_visible(Elm_Code_Widget *widget) | 586 | _elm_code_widget_cursor_ensure_visible(Elm_Code_Widget *widget) |
561 | { | 587 | { |
562 | Evas_Coord viewx, viewy, vieww, viewh, cellw = 0, cellh = 0; | 588 | 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) | |||
2182 | 2208 | ||
2183 | evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _elm_code_widget_resize_cb, obj); | 2209 | evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _elm_code_widget_resize_cb, obj); |
2184 | evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _elm_code_widget_key_down_cb, obj); | 2210 | evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _elm_code_widget_key_down_cb, obj); |
2211 | evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _elm_code_widget_hidden_cb, obj); | ||
2212 | evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _elm_code_widget_show_cb, obj); | ||
2185 | 2213 | ||
2186 | evas_object_smart_callback_add(obj, "focused", _elm_code_widget_focused_event_cb, obj); | 2214 | evas_object_smart_callback_add(obj, "focused", _elm_code_widget_focused_event_cb, obj); |
2187 | evas_object_smart_callback_add(obj, "unfocused", _elm_code_widget_unfocused_event_cb, obj); | 2215 | evas_object_smart_callback_add(obj, "unfocused", _elm_code_widget_unfocused_event_cb, obj); |