As pointed out in #3417, there is a long-standing
difference in how GtkEntry and GtkTextView treat
Ctrl-Shift-Backspace (and other variations): GtkEntry
always operates on the selection first, if it exists.
GtkTextView only handled plain Backspace that way, and
ignores the selection for other variations.
There is no good reason for this difference, so just
remove it and make GtkTextView behave the same as
GtkEntry.
Fixes: #3417
priv = text_view->priv;
- if (type == GTK_DELETE_CHARS)
+ /* If a selection exists, we operate on it first */
+ if (gtk_text_buffer_delete_selection (get_buffer (text_view), TRUE,
+ priv->editable))
{
- /* Char delete deletes the selection, if one exists */
- if (gtk_text_buffer_delete_selection (get_buffer (text_view), TRUE,
- priv->editable))
- {
- priv->need_im_reset = TRUE;
- gtk_text_view_reset_im_context (text_view);
- return;
- }
+ priv->need_im_reset = TRUE;
+ gtk_text_view_reset_im_context (text_view);
+ return;
}
gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &insert,