forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
f658027c51
commit
1e5e0480fd
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user