forked from enlightenment/efl
elm_code_widget: Display cursor within widget.
Only render the cursor when its within the bounds of the widget.
This commit is contained in:
parent
fdbc2a5b32
commit
7f727c1366
|
@ -311,6 +311,7 @@ _elm_code_widget_fill_whitespace(Elm_Code_Widget *widget, Eina_Unicode character
|
||||||
static void
|
static void
|
||||||
_elm_code_widget_cursor_update(Elm_Code_Widget *widget, Elm_Code_Widget_Data *pd)
|
_elm_code_widget_cursor_update(Elm_Code_Widget *widget, Elm_Code_Widget_Data *pd)
|
||||||
{
|
{
|
||||||
|
Evas_Coord oy, oh;
|
||||||
Evas_Coord cx = 0, cy = 0, cw = 0, ch = 0;
|
Evas_Coord cx = 0, cy = 0, cw = 0, ch = 0;
|
||||||
|
|
||||||
elm_code_widget_geometry_for_position_get(widget, pd->cursor_line, pd->cursor_col, &cx, &cy, &cw, &ch);
|
elm_code_widget_geometry_for_position_get(widget, pd->cursor_line, pd->cursor_col, &cx, &cy, &cw, &ch);
|
||||||
|
@ -324,8 +325,15 @@ _elm_code_widget_cursor_update(Elm_Code_Widget *widget, Elm_Code_Widget_Data *pd
|
||||||
elm_layout_signal_emit(pd->cursor_rect, "elm,action,focus", "elm");
|
elm_layout_signal_emit(pd->cursor_rect, "elm,action,focus", "elm");
|
||||||
}
|
}
|
||||||
|
|
||||||
evas_object_geometry_set(pd->cursor_rect, cx, cy, cw/8, ch);
|
evas_object_geometry_get(widget, NULL, &oy, NULL, &oh);
|
||||||
evas_object_show(pd->cursor_rect);
|
|
||||||
|
if ((cy < oy) || (cy > (oy + oh - ch)))
|
||||||
|
evas_object_hide(pd->cursor_rect);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
evas_object_geometry_set(pd->cursor_rect, cx, cy, cw/8, ch);
|
||||||
|
evas_object_show(pd->cursor_rect);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1110,7 +1118,7 @@ _elm_code_widget_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj
|
||||||
_popup_menu_show(widget, event->canvas.x, event->canvas.y);
|
_popup_menu_show(widget, event->canvas.x, event->canvas.y);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (event->button == 2)
|
else if (event->button == 2)
|
||||||
{
|
{
|
||||||
_mouse_selection_paste_at_position(widget, row, col);
|
_mouse_selection_paste_at_position(widget, row, col);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue