[gtk/text-overwrite-undo] text: Make overwrite undo-friendly
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/text-overwrite-undo] text: Make overwrite undo-friendly
- Date: Wed, 19 Oct 2022 03:49:22 +0000 (UTC)
commit 1e5e0480fddfef1104ffc343943d3f32efb2f1bb
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Oct 18 23:37:03 2022 -0400
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
gtk/gtktext.c | 6 ++++++
1 file changed, 6 insertions(+)
---
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]