]> Pileus Git - ~andy/gtk/commitdiff
Allow the ::delete-range handler to delete text after the text it was
authorOwen Taylor <otaylor@redhat.com>
Sun, 28 Oct 2007 22:27:15 +0000 (22:27 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Sun, 28 Oct 2007 22:27:15 +0000 (22:27 +0000)
2007-10-28  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktextbuffer.c (gtk_text_buffer_delete_interactive): Allow
        the ::delete-range handler to delete text after the text it was
        explicitly asked to delete without confusing us as to whether
        we're currently on an editable or not-editable segment.
        (#491207)

svn path=/trunk/; revision=18951

ChangeLog
gtk/gtktextbuffer.c

index 0e48fd8bb8a98f30b143cc3e5e0f2719a32dc70d..f57dbc77105b57be34ad8414fe3fd412f298dcdb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-10-28  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktextbuffer.c (gtk_text_buffer_delete_interactive): Allow
+       the ::delete-range handler to delete text after the text it was
+       explicitly asked to delete without confusing us as to whether
+       we're currently on an editable or not-editable segment.
+       (#491207)
+
 2007-10-26  Cody Russell  <cody@jhu.edu>
 
        * modules/engines/ms-windows/Theme/gtk-2.0/gtkrc:
index 7acfcff5771bb958302f087d86bb7b0f894d6227..bf4825115255783d086022de4e68b8f0581aa5cd 100644 (file)
@@ -1724,7 +1724,12 @@ gtk_text_buffer_delete_interactive (GtkTextBuffer *buffer,
 
           gtk_text_buffer_emit_delete (buffer, &start, &iter);
 
-          current_state = FALSE;
+         /* It's more robust to ask for the state again then to assume that
+          * we're on the next not-editable segment. We don't know what the
+          * ::delete-range handler did.... maybe it deleted the following not-editable
+          * segment because it was associated with the editable segment.
+          */
+         current_state = gtk_text_iter_editable (&iter, default_editable);
           deleted_stuff = TRUE;
 
           /* revalidate user's iterators. */