diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 6 | ||||
-rw-r--r-- | gtk/gtktext.c | 31 |
8 files changed, 65 insertions, 8 deletions
@@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 65f98ce78e..4f4172b468 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com> + + * gtk/gtktext.c (recompute_geometry): Make sure the + mark we pass to line start is the beginning of a + real line, not a wrapped one. + Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com> * gtk/gtktext.c: Reference count the fonts used in diff --git a/gtk/gtktext.c b/gtk/gtktext.c index ba0c1e697d..aa67e407ea 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -5087,21 +5087,36 @@ gtk_text_update_text (GtkEditable *editable, static void recompute_geometry (GtkText* text) { - GtkPropertyMark start_mark; + GtkPropertyMark mark, start_mark; + GList *new_lines; gint height; gint width; free_cache (text); - start_mark = set_vertical_scroll (text); - + mark = start_mark = set_vertical_scroll (text); + + /* We need a real start of a line when calling fetch_lines(). + * not the start of a wrapped line. + */ + while (mark.index > 0 && + GTK_TEXT_INDEX (text, mark.index - 1) != LINE_DELIM) + decrement_mark (&mark); + gdk_window_get_size (text->text_area, &width, &height); - text->line_start_cache = fetch_lines (text, - &start_mark, - NULL, - FetchLinesPixels, - height + text->first_cut_pixels); + new_lines = fetch_lines (text, + &mark, + NULL, + FetchLinesPixels, + height + text->first_cut_pixels); + + /* Now work forward to the actual first onscreen line */ + + while (CACHE_DATA (new_lines).start.index < start_mark.index) + new_lines = new_lines->next; + + text->line_start_cache = new_lines; find_cursor (text, TRUE); } |