summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-12-03 20:26:54 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-12-03 20:26:54 +0000
commit2f7fa10434bc2fb949f4fec11dbeb5fc8fc526a7 (patch)
tree8547deafd74921ad63b0ed394431d1874a2f4869 /gtk
parent4d2be2e3223707f5475f4f7dc91f2892989c7c30 (diff)
parentd5c01098fd7ffc044e479798799475ae8b0e6ea0 (diff)
downloadgtk+-2f7fa10434bc2fb949f4fec11dbeb5fc8fc526a7.tar.gz
Merge branch 'textview-im-surrounding' into 'main'
textview: Provide more context to input methods See merge request GNOME/gtk!4209
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtktextview.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index 75f9471c8f..f8e1f0d1ed 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -8566,6 +8566,8 @@ gtk_text_view_retrieve_surrounding_handler (GtkIMContext *context,
GtkTextIter end;
GtkTextIter start1;
GtkTextIter end1;
+ GtkTextIter start2;
+ GtkTextIter end2;
int cursor_pos;
int anchor_pos;
char *text;
@@ -8589,6 +8591,16 @@ gtk_text_view_retrieve_surrounding_handler (GtkIMContext *context,
gtk_text_iter_set_line_offset (&start1, 0);
gtk_text_iter_forward_to_line_end (&end1);
+ start2 = start;
+ gtk_text_iter_backward_word_starts (&start2, 3);
+ if (gtk_text_iter_compare (&start2, &start1) < 0)
+ start1 = start2;
+
+ end2 = end;
+ gtk_text_iter_forward_word_ends (&end2, 3);
+ if (gtk_text_iter_compare (&end2, &end1) > 0)
+ end1 = end2;
+
pre = gtk_text_iter_get_slice (&start1, &start);
sel = gtk_text_iter_get_slice (&start, &end);
post = gtk_text_iter_get_slice (&end, &end1);