]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktextview.c
Don't delete forward across line boundaries when in overwrite mode.
[~andy/gtk] / gtk / gtktextview.c
index a8f7f35d4a6a7e49a79922707f8e52f1c92c0c00..defa2cfb0cae605e7fa293824868c5c9289225f3 100644 (file)
@@ -6016,7 +6016,16 @@ gtk_text_view_commit_text (GtkTextView   *text_view,
   else
     {
       if (!had_selection && text_view->overwrite_mode)
-        gtk_text_view_delete_from_cursor (text_view, GTK_DELETE_CHARS, 1);
+       {
+         GtkTextIter insert;
+         
+         gtk_text_buffer_get_iter_at_mark (get_buffer (text_view),
+                                           &insert,
+                                           gtk_text_buffer_get_mark (get_buffer (text_view),
+                                                                     "insert"));
+         if (!gtk_text_iter_ends_line (&insert))
+           gtk_text_view_delete_from_cursor (text_view, GTK_DELETE_CHARS, 1);
+       }
       gtk_text_buffer_insert_interactive_at_cursor (get_buffer (text_view), str, -1,
                                                     text_view->editable);
     }