[gtk/preedit-selection-fix: 6/8] text: Optimize away 0-change insertions and deletions




commit ccae0e1732d12ca312960ac83681d4d5f8aad1ea
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Mar 4 14:14:09 2021 -0500

    text: Optimize away 0-change insertions and deletions
    
    We can short-circuit insert and delete calls that are
    not causing any change.

 gtk/gtktext.c | 6 ++++++
 1 file changed, 6 insertions(+)
---
diff --git a/gtk/gtktext.c b/gtk/gtktext.c
index 7791029e52..20c7fee841 100644
--- a/gtk/gtktext.c
+++ b/gtk/gtktext.c
@@ -3309,6 +3309,9 @@ gtk_text_insert_text (GtkText    *self,
   int n_inserted;
   int n_chars;
 
+  if (length == 0)
+    return;
+
   n_chars = g_utf8_strlen (text, length);
 
   /*
@@ -3338,6 +3341,9 @@ gtk_text_delete_text (GtkText *self,
 {
   GtkTextPrivate *priv = gtk_text_get_instance_private (self);
 
+  if (start_pos == end_pos)
+    return;
+
   begin_change (self);
 
   gtk_entry_buffer_delete_text (get_buffer (self), start_pos, end_pos - start_pos);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]