From: Matthias Clasen Date: Wed, 19 Oct 2022 03:37:03 +0000 (-0400) Subject: text: Make overwrite undo-friendly X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~9^2~159^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1e5e0480fddfef1104ffc343943d3f32efb2f1bb;p=gtk4.git text: Make overwrite undo-friendly In overwrite mode, every typed character gets handled as a delete+insert, but we should not record these as two individually undoable steps. This matches how we handle overwrite mode in GtkTextView. Fixes: #4411 --- diff --git a/gtk/gtktext.c b/gtk/gtktext.c index d67b57825c..39eda89baa 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -4321,6 +4321,9 @@ gtk_text_enter_text (GtkText *self, int tmp_pos; guint text_length; + gtk_text_history_begin_user_action (priv->history); + begin_change (self); + priv->need_im_reset = FALSE; if (priv->selection_bound != priv->current_pos) @@ -4338,6 +4341,9 @@ gtk_text_enter_text (GtkText *self, tmp_pos = priv->current_pos; gtk_editable_insert_text (GTK_EDITABLE (self), str, strlen (str), &tmp_pos); gtk_text_set_selection_bounds (self, tmp_pos, tmp_pos); + + end_change (self); + gtk_text_history_end_user_action (priv->history); } /* All changes to priv->current_pos and priv->selection_bound