[gtksourceview/wip/smart-backspace: 1/3] view: fix bug in smart-backspace



commit 7f039285dbbe92b3a77b51c3d50f42fb2eb36dfd
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Aug 16 17:44:50 2015 +0200

    view: fix bug in smart-backspace
    
    "    |text" -> do a smart-backspace here didn't work.

 gtksourceview/gtksourceview.c |   22 ++++++++--------------
 1 files changed, 8 insertions(+), 14 deletions(-)
---
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index dc1d958..f2144ed 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -4068,7 +4068,7 @@ gtk_source_view_do_smart_backspace (GtkSourceView *view,
        GtkTextBuffer *buffer;
        GtkTextIter insert;
        GtkTextIter end;
-       GtkTextIter tmp;
+       GtkTextIter iter;
        guint visual_column;
        gint indent_width;
        gint tab_width;
@@ -4098,25 +4098,19 @@ gtk_source_view_do_smart_backspace (GtkSourceView *view,
                }
        }
 
-       /* if the line isn't empty up to our cursor, ignore */
-       tmp = insert;
-       while (TRUE)
+       /* If the line isn't empty up to our cursor, ignore. */
+       iter = insert;
+       gtk_text_iter_set_line_offset (&iter, 0);
+       while (gtk_text_iter_compare (&iter, &insert) < 0)
        {
-               gunichar ch;
+               gunichar ch = gtk_text_iter_get_char (&iter);
 
-               ch = gtk_text_iter_get_char (&tmp);
-
-               if ((ch != 0) && !g_unichar_isspace (ch))
+               if (!g_unichar_isspace (ch))
                {
                        return FALSE;
                }
 
-               if (gtk_text_iter_starts_line (&tmp))
-               {
-                       break;
-               }
-
-               gtk_text_iter_backward_char (&tmp);
+               gtk_text_iter_forward_char (&iter);
        }
 
        /*


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