Make sure the mark we pass to line start is the beginning of a real line,

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.
This commit is contained in:
Owen Taylor 1998-08-25 22:22:12 +00:00 committed by Owen Taylor
parent 155da3a8c5
commit 1dafcb2a24
8 changed files with 65 additions and 8 deletions

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -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> Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in * gtk/gtktext.c: Reference count the fonts used in

View File

@ -5087,21 +5087,36 @@ gtk_text_update_text (GtkEditable *editable,
static void static void
recompute_geometry (GtkText* text) recompute_geometry (GtkText* text)
{ {
GtkPropertyMark start_mark; GtkPropertyMark mark, start_mark;
GList *new_lines;
gint height; gint height;
gint width; gint width;
free_cache (text); 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); gdk_window_get_size (text->text_area, &width, &height);
text->line_start_cache = fetch_lines (text, new_lines = fetch_lines (text,
&start_mark, &mark,
NULL, NULL,
FetchLinesPixels, FetchLinesPixels,
height + text->first_cut_pixels); 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); find_cursor (text, TRUE);
} }