### Method

# Gtk IMContext get_surrounding_with_selection

since: 4.2

#### Declaration [src]

    gboolean
    gtk_im_context_get_surrounding_with_selection (
      GtkIMContext* context,
      char** text,
      int* cursor_index,
      int* anchor_index
    )

#### Description [src]

Retrieves context around the insertion point.

Input methods typically want context in order to constrain input text based on existing text; this is important for languages such as Thai where only some sequences of characters are allowed.

This function is implemented by emitting the `GtkIMContext::retrieve-surrounding` signal on the input method; in response to this signal, a widget should provide as much context as is available, up to an entire paragraph, by calling `gtk_im_context_set_surrounding_with_selection()`.

Note that there is no obligation for a widget to respond to the `::retrieve-surrounding` signal, so input methods must be prepared to function without context.

Available since: 4.2

#### Parameters

`text`

  Type: `char**`

  Location to store a UTF-8 encoded string of text holding context around the insertion point. If the function returns `TRUE`, then you must free the result stored in this location with g_free().

  The argument will be set by the function.
  The caller of the method takes ownership of the returned data, and is responsible for freeing it.
  The value is a NUL terminated UTF-8 string.

`cursor_index`

  Type: `int*`

  Location to store byte index of the insertion cursor within `text`.

  The argument will be set by the function.

`anchor_index`

  Type: `int*`

  Location to store byte index of the selection bound within `text`.

  The argument will be set by the function.

#### Return value

Type: `gboolean`

`TRUE` if surrounding text was provided; in this case you must free the result stored in `text`.