]> Pileus Git - ~andy/gtk/commitdiff
Fix highlighting of selection wrt. to empty lines. (#90435, #90582)
authorMatthias Clasen <maclas@gmx.de>
Wed, 25 Dec 2002 21:02:25 +0000 (21:02 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 25 Dec 2002 21:02:25 +0000 (21:02 +0000)
2002-12-25  Matthias Clasen  <maclas@gmx.de>

* gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
selection wrt. to empty lines.  (#90435, #90582)

* gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
Keep the cursor on screen.  (#96929)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktextdisplay.c
gtk/gtktextview.c

index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index 8d82366dce3e868cdac59af9ec7e250f8b53ac3e..1b40abebb46cef531b5ebf8dda115d7562867b9b 100644 (file)
@@ -1,3 +1,11 @@
+2002-12-25  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix highlighting of
+       selection wrt. to empty lines.  (#90435, #90582)
+
+       * gtk/gtktextview.c (gtk_text_view_preedit_changed_handler):
+       Keep the cursor on screen.  (#96929)
+
 2002-12-24  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtktextbuffer.c (paste_from_buffer): 
index e531a4652653851fdb71222c9d178cdd64f40e5b..4be120d80cf9314ffdc085da25538d55688c6215 100644 (file)
@@ -803,7 +803,8 @@ gtk_text_layout_draw (GtkTextLayout *layout,
                                                 &line_start,
                                                 line, 0);
               line_end = line_start;
-              gtk_text_iter_forward_to_line_end (&line_end);
+             if (!gtk_text_iter_ends_line (&line_end))
+               gtk_text_iter_forward_to_line_end (&line_end);
               byte_count = gtk_text_iter_get_line_index (&line_end);     
 
               if (gtk_text_iter_compare (&selection_start, &line_end) <= 0 &&
@@ -817,7 +818,7 @@ gtk_text_layout_draw (GtkTextLayout *layout,
                   if (gtk_text_iter_compare (&selection_end, &line_end) <= 0)
                     selection_end_index = gtk_text_iter_get_line_index (&selection_end);
                   else
-                    selection_end_index = byte_count;
+                    selection_end_index = MAX(byte_count, 1);
                 }
             }
 
index 138c38a2731495f990b6f3086c180e306da61cef..9530cc674fa18ef675b916066bc49fd95970c998 100644 (file)
@@ -6191,9 +6191,12 @@ gtk_text_view_preedit_changed_handler (GtkIMContext *context,
 
   gtk_im_context_get_preedit_string (context, &str, &attrs, &cursor_pos);
   gtk_text_layout_set_preedit_string (text_view->layout, str, attrs, cursor_pos);
-
   pango_attr_list_unref (attrs);
   g_free (str);
+
+  gtk_text_view_scroll_mark_onscreen (text_view,
+                                      gtk_text_buffer_get_mark (get_buffer (text_view),
+                                                                "insert"));
 }
 
 static gboolean