}
static void
+_curs_lin_start(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+{
+ evas_textblock_cursor_line_first(c);
+ _curs_update_from_curs(c, o, en);
+}
+
+static void
+_curs_lin_end(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+{
+ evas_textblock_cursor_line_last(c);
+// if (!evas_textblock_cursor_node_format_get(c))
+// _curs_next(c, o, en);
+ _curs_update_from_curs(c, o, en);
+}
+
+static void
+_curs_start(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+{
+ evas_textblock_cursor_line_set(c, 0);
+ evas_textblock_cursor_line_first(c);
+ _curs_update_from_curs(c, o, en);
+}
+
+static void
+_curs_end(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
+{
+ evas_textblock_cursor_node_last(c);
+ _curs_lin_end(c, o, en);
+// evas_textblock_cursor_line_set(c, _curs_line_last_get(c, o, en));
+// _curs_lin_end(c, o, en);
+ _curs_update_from_curs(c, o, en);
+}
+
+static void
_curs_jump_line(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en, int ln)
{
Evas_Coord lx, ly, lw, lh;
+ int last = _curs_line_last_get(c, o, en);
if (ln < 0) ln = 0;
else
{
- int last = _curs_line_last_get(c, o, en);
if (ln > last) ln = last;
}
if (!evas_object_textblock_line_number_geometry_get(o, ln, &lx, &ly, &lw, &lh))
return;
if (evas_textblock_cursor_char_coord_set(c, en->cx, ly + (lh / 2)))
return;
- evas_textblock_cursor_line_coord_set(c, ly + (lh / 2));
- if (en->cx < (lx + (lw / 2))) evas_textblock_cursor_line_first(c);
- else evas_textblock_cursor_line_last(c);
+ if (en->cx < (lx + (lw / 2)))
+ {
+// evas_textblock_cursor_line_first(c);
+ if (ln == last) _curs_end(c, o, en);
+ _curs_lin_start(c, o, en);
+ }
+ else
+ {
+// evas_textblock_cursor_line_last(c);
+ if (ln == last)
+ _curs_end(c, o, en);
+ else
+ _curs_lin_end(c, o, en);
+ }
}
static void
}
static void
-_curs_lin_start(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
-{
- evas_textblock_cursor_line_first(c);
- _curs_update_from_curs(c, o, en);
-}
-
-static void
-_curs_lin_end(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
-{
- evas_textblock_cursor_line_last(c);
-// if (!evas_textblock_cursor_node_format_get(c))
-// _curs_next(c, o, en);
- _curs_update_from_curs(c, o, en);
-}
-
-static void
-_curs_start(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
-{
- evas_textblock_cursor_line_set(c, 0);
- evas_textblock_cursor_line_first(c);
- _curs_update_from_curs(c, o, en);
-}
-
-static void
-_curs_end(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
-{
- evas_textblock_cursor_line_set(c, _curs_line_last_get(c, o, en));
- _curs_lin_end(c, o, en);
- _curs_update_from_curs(c, o, en);
-}
-
-
-
-static void
_sel_start(Evas_Textblock_Cursor *c, Evas_Object *o, Entry *en)
{
if (en->sel_start) return;