if (priv->editable)
{
+ begin_change (self);
gtk_text_reset_im_context (self);
gtk_editable_insert_text (GTK_EDITABLE (self), str, -1, &pos);
gtk_text_set_selection_bounds (self, pos, pos);
+ end_change (self);
}
}
return;
}
+ begin_change (self);
+
if (priv->selection_bound != priv->current_pos)
{
gtk_text_delete_selection (self);
gtk_text_schedule_im_reset (self);
gtk_text_reset_im_context (self);
- return;
+ goto done;
}
switch (type)
gtk_text_reset_im_context (self);
}
+done:
+ end_change (self);
gtk_text_pend_cursor_blink (self);
}
return;
}
+ begin_change (self);
+
if (priv->selection_bound != priv->current_pos)
{
gtk_text_delete_selection (self);
gtk_text_schedule_im_reset (self);
gtk_text_reset_im_context (self);
- return;
+ goto done;
}
prev_pos = gtk_text_move_logically (self, priv->current_pos, -1);
gtk_widget_error_bell (GTK_WIDGET (self));
}
+done:
+ end_change (self);
gtk_text_pend_cursor_blink (self);
}
if (priv->editable)
{
if (priv->selection_bound != priv->current_pos)
- gtk_text_delete_selection (self);
+ {
+ begin_change (self);
+ gtk_text_delete_selection (self);
+ end_change (self);
+ }
}
else
{
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
if (priv->editable)
- gtk_text_paste (self, gtk_widget_get_clipboard (GTK_WIDGET (self)));
+ {
+ begin_change (self);
+ gtk_text_paste (self, gtk_widget_get_clipboard (GTK_WIDGET (self)));
+ end_change (self);
+ }
else
- gtk_widget_error_bell (GTK_WIDGET (self));
+ {
+ gtk_widget_error_bell (GTK_WIDGET (self));
+ }
gtk_text_update_handles (self);
}