void gtk_text_buffer_place_cursor ( GtkTextBuffer* buffer, const GtkTextIter* where )
This function moves the “insert” and “selection_bound” marks simultaneously. If you move them to the same place in two steps with gtk_text_buffer_move_mark(), you will temporarily select a region in between their old and new locations, which can be pretty inefficient since the temporarily-selected region will force stuff to be recalculated. This function moves them as a unit, which can be optimized.
Where to put the cursor.
The data is owned by the caller of the function.