Here is a patch for the weirds scroll buffer bug ive ever seen.
Since the new code for moving the scroll was introduced in 0.77
i have not been able to use gaim since when the scroll buffer
got somewhat big it would not scroll down to the last line. It
would insteed scroll to about 25% of the buffer.

I dont know if it has anything to do with the fact that y and
height isnt initizated or if its rect but that code is harmless
so I kept it.

What I do think it is is the scroll_to_mark, it was set to
scroll the buffer and put the mark top right, changing it to
1.0, 1.0 sets the mark to bottom right.

This top right with the fact that im using weird fonts might
be the problem, somehow its calculated wrong.

This patch has been tested on other ppl that didnt have the
problem and it works for them too.

Jerry Lundstrom
jerry.lundstrom@it.su.se
prox@lunar-linux.org

diff -urN gaim-0.81/src/gtkimhtml.c gaim-0.81.mod/src/gtkimhtml.c
--- gaim-0.81/src/gtkimhtml.c	2004-08-02 00:00:33.000000000 +0200
+++ gaim-0.81.mod/src/gtkimhtml.c	2004-08-10 15:37:28.000000000 +0200
@@ -1920,7 +1920,7 @@
 {
 	GtkTextIter iter, ins, sel;
 	GdkRectangle rect;
-	int y, height, ins_offset = 0, sel_offset = 0;
+	int y = 0, height = 0, ins_offset = 0, sel_offset = 0;
 	gboolean fixins = FALSE, fixsel = FALSE;
 
 	g_return_if_fail (imhtml != NULL);
@@ -1941,6 +1941,7 @@
 		sel_offset = gtk_text_iter_get_offset(&sel);
 	}
 
+    rect.y = rect.height = 0;
 	gtk_text_view_get_visible_rect(GTK_TEXT_VIEW(imhtml), &rect);
 	gtk_text_view_get_line_yrange(GTK_TEXT_VIEW(imhtml), &iter, &y, &height);
 
@@ -1980,7 +1981,7 @@
 	gtk_text_iter_set_line_offset(&iter, 0);
 	gtk_text_buffer_move_mark(imhtml->text_buffer, imhtml->scrollpoint, &iter);
 	gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(imhtml), imhtml->scrollpoint,
-	                             0, TRUE, 1.0, 0.0);
+	                             0, TRUE, 1.0, 1.0);
 }
 
 void gtk_imhtml_insert_html_at_iter(GtkIMHtml        *imhtml,
