Merge branch 'textview-delete-4' into 'master'

gtktextviewaccessible: update cursor position after text suppression

See merge request GNOME/gtk!102
This commit is contained in:
Benjamin Otte 2018-04-04 18:18:49 +00:00
commit 572a23b136

View File

@ -39,19 +39,23 @@ struct _GtkTextViewAccessiblePrivate
gint selection_bound;
};
static void insert_text_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
gchar *arg2,
gint arg3,
gpointer user_data);
static void delete_range_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
GtkTextIter *arg2,
gpointer user_data);
static void mark_set_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
GtkTextMark *arg2,
gpointer user_data);
static void insert_text_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
gchar *arg2,
gint arg3,
gpointer user_data);
static void delete_range_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
GtkTextIter *arg2,
gpointer user_data);
static void delete_range_after_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
GtkTextIter *arg2,
gpointer user_data);
static void mark_set_cb (GtkTextBuffer *buffer,
GtkTextIter *arg1,
GtkTextMark *arg2,
gpointer user_data);
static void atk_editable_text_interface_init (AtkEditableTextIface *iface);
@ -132,6 +136,7 @@ gtk_text_view_accessible_change_buffer (GtkTextViewAccessible *accessible,
{
g_signal_connect_after (new_buffer, "insert-text", G_CALLBACK (insert_text_cb), accessible);
g_signal_connect (new_buffer, "delete-range", G_CALLBACK (delete_range_cb), accessible);
g_signal_connect_after (new_buffer, "delete-range", G_CALLBACK (delete_range_after_cb), accessible);
g_signal_connect_after (new_buffer, "mark-set", G_CALLBACK (mark_set_cb), accessible);
g_signal_emit_by_name (accessible,
@ -1801,6 +1806,15 @@ delete_range_cb (GtkTextBuffer *buffer,
"text-changed::delete",
offset,
length);
}
static void
delete_range_after_cb (GtkTextBuffer *buffer,
GtkTextIter *start,
GtkTextIter *end,
gpointer data)
{
GtkTextViewAccessible *accessible = data;
gtk_text_view_accessible_update_cursor (accessible, buffer);
}