--- a/ui/gtk/text.c Thu Jan 29 19:01:52 2026 +0100 +++ b/ui/gtk/text.c Thu Jan 29 20:55:59 2026 +0100 @@ -186,6 +186,7 @@ value->insert = ui_textarea_insert; value->setposition = ui_textarea_setposition; value->position = ui_textarea_position; + value->setselection = ui_textarea_setselection; value->selection = ui_textarea_selection; value->length = ui_textarea_length; value->remove = ui_textarea_remove; @@ -295,6 +296,15 @@ return text->pos; } +void ui_textarea_setselection(UiText *text, int begin, int end) { + GtkTextBuffer *buf = text->data1; + GtkTextIter ib; + GtkTextIter ie; + gtk_text_buffer_get_iter_at_offset(text->data1, &ib, begin); + gtk_text_buffer_get_iter_at_offset(text->data1, &ie, end); + gtk_text_buffer_select_range(buf, &ib, &ie); +} + void ui_textarea_selection(UiText *text, int *begin, int *end) { GtkTextIter b; GtkTextIter e;