diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-03-04 15:14:52 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-03-04 15:18:30 -0500 |
commit | 97db959305cd30450dfa1dca713ee7477b792fa4 (patch) | |
tree | 9e439c12c6a955140314b79c8843e7b83c691b29 /gtk/gtkimmulticontext.c | |
parent | 4b9aeaf9e38ef787cadd81149683c9e9416cc605 (diff) | |
download | gtk+-97db959305cd30450dfa1dca713ee7477b792fa4.tar.gz |
immulticontext: Implement [gs]et_surrounding_with_selection
This is the recommended api, going forward.
Diffstat (limited to 'gtk/gtkimmulticontext.c')
-rw-r--r-- | gtk/gtkimmulticontext.c | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c index 75a70c3f0d..5775a42880 100644 --- a/gtk/gtkimmulticontext.c +++ b/gtk/gtkimmulticontext.c @@ -74,13 +74,17 @@ static void gtk_im_multicontext_set_cursor_location (GtkIMContext GdkRectangle *area); static void gtk_im_multicontext_set_use_preedit (GtkIMContext *context, gboolean use_preedit); -static gboolean gtk_im_multicontext_get_surrounding (GtkIMContext *context, - char **text, - int *cursor_index); -static void gtk_im_multicontext_set_surrounding (GtkIMContext *context, - const char *text, - int len, - int cursor_index); +static gboolean gtk_im_multicontext_get_surrounding_with_selection + (GtkIMContext *context, + char **text, + int *cursor_index, + int *anchor_index); +static void gtk_im_multicontext_set_surrounding_with_selection + (GtkIMContext *context, + const char *text, + int len, + int cursor_index, + int anchor_index); static void gtk_im_multicontext_preedit_start_cb (GtkIMContext *delegate, GtkIMMulticontext *multicontext); @@ -118,8 +122,8 @@ gtk_im_multicontext_class_init (GtkIMMulticontextClass *class) im_context_class->reset = gtk_im_multicontext_reset; im_context_class->set_cursor_location = gtk_im_multicontext_set_cursor_location; im_context_class->set_use_preedit = gtk_im_multicontext_set_use_preedit; - im_context_class->set_surrounding = gtk_im_multicontext_set_surrounding; - im_context_class->get_surrounding = gtk_im_multicontext_get_surrounding; + im_context_class->set_surrounding_with_selection = gtk_im_multicontext_set_surrounding_with_selection; + im_context_class->get_surrounding_with_selection = gtk_im_multicontext_get_surrounding_with_selection; gobject_class->finalize = gtk_im_multicontext_finalize; } @@ -460,37 +464,41 @@ gtk_im_multicontext_set_use_preedit (GtkIMContext *context, } static gboolean -gtk_im_multicontext_get_surrounding (GtkIMContext *context, - char **text, - int *cursor_index) +gtk_im_multicontext_get_surrounding_with_selection (GtkIMContext *context, + char **text, + int *cursor_index, + int *anchor_index) { GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context); GtkIMContext *delegate = gtk_im_multicontext_get_delegate (multicontext); if (delegate) - return gtk_im_context_get_surrounding (delegate, text, cursor_index); + return gtk_im_context_get_surrounding_with_selection (delegate, text, cursor_index, anchor_index); else { if (text) - *text = NULL; + *text = NULL; if (cursor_index) - *cursor_index = 0; + *cursor_index = 0; + if (anchor_index) + *anchor_index = 0; return FALSE; } } static void -gtk_im_multicontext_set_surrounding (GtkIMContext *context, - const char *text, - int len, - int cursor_index) +gtk_im_multicontext_set_surrounding_with_selection (GtkIMContext *context, + const char *text, + int len, + int cursor_index, + int anchor_index) { GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context); GtkIMContext *delegate = gtk_im_multicontext_get_delegate (multicontext); if (delegate) - gtk_im_context_set_surrounding (delegate, text, len, cursor_index); + gtk_im_context_set_surrounding_with_selection (delegate, text, len, cursor_index, anchor_index); } static void |