diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index e6ef225eff..b1dd91abcb 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -8735,11 +8735,11 @@ gtk_text_view_retrieve_surrounding_handler (GtkIMContext *context, gboolean flip; gtk_text_buffer_get_iter_at_mark (text_view->priv->buffer, &start, - gtk_text_buffer_get_insert (text_view->priv->buffer)); - gtk_text_buffer_get_iter_at_mark (text_view->priv->buffer, &end, gtk_text_buffer_get_selection_bound (text_view->priv->buffer)); + gtk_text_buffer_get_iter_at_mark (text_view->priv->buffer, &end, + gtk_text_buffer_get_insert (text_view->priv->buffer)); - flip = gtk_text_iter_compare (&start, &end) < 0; + flip = gtk_text_iter_compare (&start, &end) > 0; gtk_text_iter_order (&start, &end); @@ -8765,13 +8765,13 @@ gtk_text_view_retrieve_surrounding_handler (GtkIMContext *context, if (flip) { - anchor_pos = strlen (pre); - cursor_pos = anchor_pos + strlen (sel); + cursor_pos = strlen (pre); + anchor_pos = cursor_pos + strlen (sel); } else { - cursor_pos = strlen (pre); - anchor_pos = cursor_pos + strlen (sel); + anchor_pos = strlen (pre); + cursor_pos = anchor_pos + strlen (sel); } text = g_strconcat (pre, sel, post, NULL); diff --git a/testsuite/gtk/imcontext.c b/testsuite/gtk/imcontext.c index 6f52c96ade..6fadada3b0 100644 --- a/testsuite/gtk/imcontext.c +++ b/testsuite/gtk/imcontext.c @@ -73,9 +73,10 @@ test_textview_surrounding (void) GtkTextBuffer *buffer; GtkTextIter iter; GtkTextIter start, end; + GtkTextIter bound, insert; gboolean ret; char *text; - int cursor_pos, selection_bound; + int anchor_pos, cursor_pos; widget = gtk_text_view_new (); controller = gtk_text_view_get_key_controller (GTK_TEXT_VIEW (widget)); @@ -89,12 +90,12 @@ test_textview_surrounding (void) ret = gtk_im_context_get_surrounding_with_selection (context, &text, &cursor_pos, - &selection_bound); + &anchor_pos); g_assert_true (ret); g_assert_cmpstr (text, ==, "abcd\nefgh\nijkl"); g_assert_cmpint (cursor_pos, ==, 7); - g_assert_cmpint (selection_bound, ==, 7); + g_assert_cmpint (anchor_pos, ==, 7); g_free (text); @@ -122,19 +123,19 @@ test_textview_surrounding (void) buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)); gtk_text_buffer_set_text (buffer, "ab cd\nef gh\nijkl", -1); - gtk_text_buffer_get_iter_at_line_offset (buffer, &start, 1, 4); - gtk_text_buffer_get_iter_at_line_offset (buffer, &end, 2, 2); - gtk_text_buffer_select_range (buffer, &start, &end); + gtk_text_buffer_get_iter_at_line_offset (buffer, &bound, 1, 4); + gtk_text_buffer_get_iter_at_line_offset (buffer, &insert, 2, 2); + gtk_text_buffer_select_range (buffer, &insert, &bound); ret = gtk_im_context_get_surrounding_with_selection (context, &text, &cursor_pos, - &selection_bound); + &anchor_pos); g_assert_true (ret); g_assert_cmpstr (text, ==, "cd\nef gh\nijkl"); + g_assert_cmpint (anchor_pos, ==, 7); g_assert_cmpint (cursor_pos, ==, 11); - g_assert_cmpint (selection_bound, ==, 7); g_free (text);