use gtk_text_layout_invalidate_cache instead of cut-and-paste

2002-04-30  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
	gtk_text_layout_invalidate_cache instead of cut-and-paste
	(gtk_text_layout_real_invalidate): always invalidate cache, even
	if the line has no stored line data. #78573

	* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
	gtk_text_view_ensure_layout, #77388
	(gtk_text_view_get_iter_at_location): ditto
	(gtk_text_view_get_line_yrange): ditto
	(gtk_text_view_get_line_at_y): ditto
This commit is contained in:
Havoc Pennington
2002-04-30 20:51:35 +00:00
committed by Havoc Pennington
parent fbd163525e
commit eccf6735c9
8 changed files with 90 additions and 11 deletions

View File

@ -719,11 +719,10 @@ gtk_text_layout_real_invalidate (GtkTextLayout *layout,
{
GtkTextLineData *line_data = _gtk_text_line_get_data (line, layout);
gtk_text_layout_invalidate_cache (layout, line);
if (line_data)
{
gtk_text_layout_invalidate_cache (layout, line);
_gtk_text_line_invalidate_wrap (line, line_data);
}
_gtk_text_line_invalidate_wrap (line, line_data);
if (line == last_line)
break;
@ -739,12 +738,7 @@ gtk_text_layout_real_free_line_data (GtkTextLayout *layout,
GtkTextLine *line,
GtkTextLineData *line_data)
{
if (layout->one_display_cache && line == layout->one_display_cache->line)
{
GtkTextLineDisplay *tmp_display = layout->one_display_cache;
layout->one_display_cache = NULL;
gtk_text_layout_free_line_display (layout, tmp_display);
}
gtk_text_layout_invalidate_cache (layout, line);
g_free (line_data);
}