From 9929726eb2abbb874ce6c83c7d9ee5b5bbcb8f28 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 22 Jul 2023 09:40:17 -0400 Subject: [PATCH] textview: Match entry behavior for backspace 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 --- gtk/gtktextview.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index b0a68f8504..961ceb4963 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -6885,16 +6885,13 @@ gtk_text_view_delete_from_cursor (GtkTextView *text_view, 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, -- 2.30.2