fix missing UiText setselection function (GTK) default tip

Thu, 29 Jan 2026 20:55:59 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 29 Jan 2026 20:55:59 +0100
changeset 1065
cb3c1fcecaa0
parent 1064
f415387fff6f

fix missing UiText setselection function (GTK)

ui/common/types.c file | annotate | diff | comparison | revisions
ui/gtk/text.c file | annotate | diff | comparison | revisions
ui/gtk/text.h file | annotate | diff | comparison | revisions
--- a/ui/common/types.c	Thu Jan 29 19:01:52 2026 +0100
+++ b/ui/common/types.c	Thu Jan 29 20:55:59 2026 +0100
@@ -678,6 +678,7 @@
     to->insert = from->insert;
     to->setposition = from->setposition;
     to->position = from->position;
+    to->setselection = from->setselection;
     to->selection = from->selection;
     to->length = from->length;
     to->remove = from->remove;
--- 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;
--- a/ui/gtk/text.h	Thu Jan 29 19:01:52 2026 +0100
+++ b/ui/gtk/text.h	Thu Jan 29 20:55:59 2026 +0100
@@ -120,6 +120,7 @@
 void ui_textarea_insert(UiText *text, int pos, char *str);
 void ui_textarea_setposition(UiText *text, int pos);
 int ui_textarea_position(UiText *text);
+void ui_textarea_setselection(UiText *text, int begin, int end);
 void ui_textarea_selection(UiText *text, int *begin, int *end);
 int ui_textarea_length(UiText *text);
 void ui_textarea_remove(UiText *text, int begin, int end);

mercurial