diff -r 9a7e4a335b2b -r 2019fdbaadfd ui/gtk/text.c --- a/ui/gtk/text.c Sun Feb 15 15:44:24 2015 +0100 +++ b/ui/gtk/text.c Tue Feb 17 20:12:22 2015 +0100 @@ -110,6 +110,7 @@ value->set = ui_textarea_set; value->getsubstr = ui_textarea_getsubstr; value->insert = ui_textarea_insert; + value->setposition = ui_textarea_setposition; value->position = ui_textarea_position; value->selection = ui_textarea_selection; value->length = ui_textarea_length; @@ -198,11 +199,18 @@ gtk_text_buffer_insert(text->obj, &offset, str, -1); } +void ui_textarea_setposition(UiText *text, int pos) { + GtkTextIter iter; + gtk_text_buffer_get_iter_at_offset(text->obj, &iter, pos); + gtk_text_buffer_place_cursor(text->obj, &iter); +} + int ui_textarea_position(UiText *text) { GtkTextIter begin; GtkTextIter end; gtk_text_buffer_get_selection_bounds(text->obj, &begin, &end); - return gtk_text_iter_get_offset(&begin); + text->pos = gtk_text_iter_get_offset(&begin); + return text->pos; } void ui_textarea_selection(UiText *text, int *begin, int *end) {